SMTP voor Node.js — mail uit uw applicatie die aankomt
Node.js heeft geen ingebouwde mailfunctie; vrijwel elke applicatie gebruikt daarvoor Nodemailer. Die bibliotheek maakt versturen eenvoudig, maar zegt niets over afleverbaarheid: die hangt volledig af van de SMTP-server waarlangs u verstuurt.
Nodemailer werkt met een transport. U maakt een SMTP-transport aan met de gegevens van uw relay — host, poort, versleuteling en login — en de rest van uw code blijft ongewijzigd. Wat vandaag via een lokale server of een testaccount vertrekt, loopt morgen via 2mail.
Waarom het misgaat zonder relay
Een Node.js-applicatie verstuurt typisch mail op het moment dat het ertoe doet: een verificatiecode, een wachtwoordherstel, een bevestiging van een boeking. Dat zijn berichten die binnen enkele seconden verwacht worden. Vertrekken ze vanaf een server zonder reputatie, dan komt een deel er niet of te laat aan — en de gebruiker klikt op "opnieuw versturen" tot hij opgeeft.
SMTP instellen in Node.js
Gegevens ophalen
Log in op uw 2mail-account en haal daar uw SMTP-server, gebruikersnaam en wachtwoord op.
Invullen in Node.js
Maak in Nodemailer een SMTP-transport aan. Geef als host de SMTP-server van 2mail op en als poort 587, en zet de secure-optie uit zodat de verbinding via STARTTLS wordt opgewaardeerd. Vul onder auth de gebruikersnaam en het wachtwoord van uw 2mail-login in. Lees die gegevens uit omgevingsvariabelen, niet uit de code. Nodemailer heeft een verify-methode om de verbinding te controleren voor u de eerste echte mail verstuurt — gebruik die.
Domein authenticeren
Zorg dat SPF, DKIM en DMARC voor uw domein correct staan, zodat ontvangers kunnen verifiëren dat de mail van u komt.
Testen
Verstuur een testbericht naar een adres bij een grote provider en controleer of het in de inbox aankomt en niet in de spammap.
De velden die Node.js vraagt
Elk platform noemt ze net iets anders, maar het gaat altijd om dezelfde vijf. De concrete waarden zijn accountgebonden en vindt u in uw 2mail-account — vul ze daar op, zodat u zeker de juiste gebruikt.
| Veld | Wat u invult |
|---|---|
| SMTP-server (host) | De servernaam uit uw 2mail-account. |
| Poort | De poort die bij uw gekozen versleuteling hoort; uw account toont welke. |
| Versleuteling | TLS. Verstuur nooit onversleuteld — uw inloggegevens gaan anders leesbaar over de lijn. |
| Gebruikersnaam | De SMTP-login van uw 2mail-account. |
| Wachtwoord | Het bijbehorende wachtwoord. Gebruik nooit het wachtwoord van een mailbox van een medewerker. |
Welke mails Node.js verstuurt
Zodra de relay ingesteld is, lopen deze allemaal via 2mail — u hoeft ze niet stuk voor stuk te configureren.
Valkuilen bij Node.js
secure en poort moeten bij elkaar passen
De secure-optie betekent niet "veilig of onveilig", maar "TLS vanaf de eerste byte". Op poort 587 hoort secure uit te staan — STARTTLS volgt daarna. Zet u ze toch aan, dan hangt de verbinding of wordt ze meteen afgebroken, zonder duidelijke fout.
Eén transport, hergebruikt
Maak de transport één keer aan bij het opstarten en hergebruik ze, in plaats van per mail een nieuwe op te zetten. Bij een piek — een herinneringsronde, een campagne — opent u anders honderden verbindingen tegelijk, wat een relay als misbruik kan lezen. Nodemailer kan verbindingen poolen; zet dat aan bij grotere volumes.
Wacht op het resultaat en log het
Versturen is asynchroon. Wie het antwoord van de server niet afwacht of niet logt, ziet nooit dat een bericht geweigerd werd. Log minstens het bericht-id en de eventuele weigering, en koppel bij voorkeur de webhooks van 2mail voor aflevering en bounce, zodat u ook ziet wat na de overdracht misloopt.
Ander platform?
SMTP is een standaardprotocol: elk systeem dat SMTP spreekt — een CRM, een ERP, een eigen applicatie of een server — kan via 2mail versturen met dezelfde vijf velden.