technisch · antwoord met bronnen

Een e-mailadres verifiëren zonder een e-mail te versturen

Je kunt een e-mailadres verifiëren zonder een e-mail te versturen door achtereenvolgens de syntaxis te valideren, DNS-records op te vragen en een SMTP-handshake uit te voeren. Daarmee controleer je of het e-mailformaat klopt en of de ontvangende server is ingesteld om mail voor dat domein te accepteren, zonder daadwerkelijk een bericht af te leveren.

Syntaxisvalidatie

De eerste stap is het e-mailadres toetsen aan de standaard RFC 5322. Zo weet je zeker dat het adres een lokaal deel, een @-teken en een geldig domeindeel bevat. Meestal worden reguliere expressies gebruikt om veelvoorkomende typefouten, ongeldige tekens en verkeerde opmaak op te vangen voordat er netwerkrequests worden gedaan.

DNS-records controleren

Als de syntaxis klopt, moet je controleren of het domein geldige Mail Exchanger-records (MX) heeft. Een DNS-query voor het domein moet minstens één MX-record opleveren. Zijn er geen MX-records, dan kan het domein geen e-mail ontvangen. Met tools zoals de gratis tools van SendHQ kun je DNS-configuraties controleren en nagaan of het domein actief is.

De SMTP-handshake

De technische verificatiemethode bestaat uit het opzetten van een SMTP-verbinding met de MX-server. De client stuurt een HELO-commando, gevolgd door MAIL FROM en RCPT TO. Als de server op het RCPT TO-commando antwoordt met 250 OK, beschouwt de server het adres als geldig. Daarna wordt de verbinding met een QUIT-commando verbroken, nog voordat het DATA-commando wordt verstuurd.

Omgaan met serverbeperkingen

Veel moderne mailservers gebruiken catch-all-configuraties of greylisting om verificatie te voorkomen. Een catch-all-server accepteert alle mail voor het domein, ongeacht het lokale deel. Greylisting weigert de eerste poging tijdelijk, zodat de afzender het later opnieuw moet proberen. Dat kan scripts voor realtime verificatie lastiger maken.

Aandachtspunten bij de implementatie

Zorg bij het implementeren van deze controles dat je verzendende IP-adres een schone reputatie en correcte reverse DNS heeft. Frequente SMTP-handshakes zonder dat er mail wordt verstuurd, kunnen door ontvangende servers als verdacht gedrag worden gezien. Beveiligingsfilters kunnen je IP-adres dan blokkeren of afknijpen.

Vragen die teams stellen

Garandeert een SMTP-controle dat een bericht wordt afgeleverd?

Nee, het bevestigt alleen dat de server het RCPT TO-commando heeft geaccepteerd. Het garandeert niet dat het bericht langs spamfilters komt of in de inbox belandt.

Wat is een catch-all-e-mailadres?

Een catch-all is een serverconfiguratie die elke e-mail naar het domein accepteert, ook als het specifieke lokale deel niet bestaat.

Kan ik hiervoor een gewone API gebruiken?

Ja, veel e-mailvalidatiediensten automatiseren de syntaxiscontrole, de DNS-controle en de SMTP-handshake via een REST API.

Waarom weigeren sommige servers SMTP-controles?

Servers kunnen deze controles weigeren om directory harvest-aanvallen te voorkomen, waarbij bots geldige gebruikers proberen te vinden door adressen te raden.

Primaire bronnen