E-mailverificatie van Klanten: volledige gids
Installatie, configuratie en gebruik van de afleverbaarheidsverificatie van e-mails en het opschonen van de klantendatabase voor PrestaShop 8 en 9.
E-mailverificatie van Klanten controleert de werkelijke afleverbaarheid van elk e-mailadres in uw winkel: syntaxis, bestaan van het domein via zijn MX-records, en optioneel een SMTP-sonde die de server van de ontvanger bevraagt. De status van elke klant (Geldig, Ongeldig, Risicovol, Niet geverifieerd) verschijnt in een apart tabblad van de back-office, waar u de hele database in batches kunt verifiëren en met één klik de klanten kunt verwijderen van wie het e-mailadres niet bestaat — zonder ooit per ongeluk een echte klant te wissen. Deze gids behandelt de installatie, de configuratie, de verificatieniveaus en het opschonen van de database.
Installatie
- Download het archief
dfemailcheck.zipvanuit uw DataFirefly-account. - PrestaShop back-office → Modules → Een module uploaden → verstuur de ZIP.
- Bij de installatie maakt de module haar tabel
df_email_checkaan, registreert ze haar hooks en voegt ze het tabblad Klanten → E-mailverificatie toe.
Compatibel met PrestaShop 8.0 tot 9.x, in PHP 7.4 tot 8.3. Geen thema-override, geen Composer-afhankelijkheid. Compatibel met multistore en vertaalbaar.
Configuratie
Ga naar Modules → E-mailverificatie van Klanten → Configureren.
Verificatie bij registratie
Wanneer de optie Verifiëren bij het aanmaken van het account actief is, wordt elke nieuwe klant automatisch bij zijn aanmaak gecontroleerd (hook actionObjectCustomerAddAfter). Alleen de snelle verificatie — syntaxis en domein — wordt op dat moment uitgevoerd, om de bestelflow niet te vertragen. De status wordt ook herberekend wanneer een klant zijn e-mailadres wijzigt.
Registratie blokkeren
De optie Registratie blokkeren bij ongeldig domein weigert het registratieformulier wanneer het domein van het e-mailadres geen enkel MX- of A-record heeft (hooks additionalCustomerFormFields en validateCustomerFormFields). De klant ziet dan een foutmelding op het e-mailveld. Standaard uitgeschakeld.
SMTP-verificatie (geavanceerd)
De SMTP-sonde bevestigt het werkelijke bestaan van de mailbox door met de server van de ontvanger te dialogeren (commando RCPT TO), met detectie van catch-all-servers. Drie instellingen horen erbij:
- SMTP-verificatie: schakelt de sonde in of uit. Standaard uitgeschakeld.
- SMTP-afzenderadres: adres dat tijdens de dialoog wordt aangekondigd (
MAIL FROM). - SMTP-time-out: maximale wachttijd per server, in seconden (standaard 6).
De SMTP-verificatie vereist uitgaande poort 25, die op gedeelde hostings zeer vaak gesloten is. Zonder haar stopt de verificatie bij het domein — wat al de grote meerderheid van de valse adressen detecteert.
Verwijderveiligheid
- Klanten met bestellingen beschermen: verhindert het verwijderen van elke klant met minstens één bestelling, om verweesde bestellingen te vermijden. Standaard ingeschakeld.
- Batchgrootte: aantal klanten dat per doorloop wordt verwerkt bij de massaverificaties (standaard 50).
De verificatieniveaus
De controle verloopt in drie niveaus, van het snelste naar het preciesste:
- Syntaxis: validatie van het adresformaat.
- Domein: opzoeken van de MX-records van het domein, met terugval op de A/AAAA-records.
- SMTP (optioneel): dialoog met de server van de ontvanger om de mailbox te bevestigen, met detectie van catch-all-servers.
De statussen
Elke klant krijgt een van de volgende vier statussen:
- Geldig: correcte syntaxis en ontvangend domein (en bevestigde mailbox als de SMTP-sonde actief is).
- Ongeldig: zeker negatief signaal — onjuiste syntaxis (
bad_syntax), domein zonder MX of A (no_mx) of expliciete SMTP-weigering (smtp_rejected). Dit zijn de enige verwijderbare klanten. - Risicovol: catch-all-server (
smtp_catch_all) — het adres wordt geaccepteerd maar de server accepteert ook onbestaande adressen. Wordt nooit automatisch verwijderd. - Niet geverifieerd: onbepaald resultaat — time-out, gesloten poort, greylisting of nooit gecontroleerde klant. Wordt nooit verwijderd.
De detailcode (bijvoorbeeld no_mx, smtp_catch_all) wordt naast de status in de lijst getoond, om elke beslissing te verklaren.
Het dashboard
Het tabblad Klanten → E-mailverificatie toont bovenaan vijf tellers: totaal aantal klanten, geldig, ongeldig, risicovol en niet geverifieerd. Daaronder is de volledige klantenlijst filterbaar op status. Twee knoppen starten de verificatie:
- Nieuwe klanten verifiëren: controleert alleen de nooit geverifieerde klanten.
- Alles opnieuw verifiëren: controleert de hele database opnieuw.
De verwerking gebeurt in batches via AJAX, met een voortgangsbalk, waardoor grote databases zonder time-out kunnen worden verwerkt. De SMTP-sonde wordt, indien ingeschakeld, alleen tijdens deze massaverificaties gebruikt.
Ongeldige klanten verwijderen
De knop Ongeldige klanten verwijderen wist in één keer alle klanten met de status Ongeldig. Klanten die minstens één bestelling hebben geplaatst, worden genegeerd zolang de beschermingsoptie actief is. U kunt ook op een precieze selectie werken via de bulkacties van de lijst: Selectie opnieuw verifiëren of Selectie verwijderen. Het verwijderen gebruikt het native mechanisme van PrestaShop (Customer::delete()) en schoont ook de resultatentabel op.
Het verwijderen van een klant is definitief. Controleer de teller “Ongeldig” en filter zo nodig de lijst op deze status om de adressen vóór de opschoning na te kijken.
Veiligheid — nul valse positieven
De centrale regel van de module: een adres wordt nooit als Ongeldig gemarkeerd op basis van een simpele twijfel. Een time-out, greylisting, een gesloten SMTP-poort of een tijdelijk antwoord (4xx) laten de status op Niet geverifieerd, nooit verwijderd. Alleen zekere negatieve signalen (syntaxis, afwezigheid van MX/A, 5xx-weigering) maken een klant verwijderbaar. Gecombineerd met de bescherming van klanten met bestellingen voorkomt deze logica dat een echte klant per ongeluk wordt gewist.
Compatibiliteit en technische notities
- PrestaShop 8.0 tot 9.x, multistore. Interface geleverd in FR, EN, ES, IT, DE en PL.
- Legacy beheercontroller (geen Symfony-controller) voor de PS8/PS9-compatibiliteit.
- Hooks:
actionObjectCustomerAddAfter,actionObjectCustomerUpdateAfter,actionObjectCustomerDeleteAfter,additionalCustomerFormFields,validateCustomerFormFields. - Back-office AJAX-endpoint via het 4e argument van
getAdminLink(); JSON-rendering door een aparte methode. - Tabel
df_email_check: één record per klant (e-mail, status, detailcode, controledatum). - Geen enkele aanroep van een externe dienst: de verificatie steunt uitsluitend op de DNS en, optioneel, op een directe SMTP-verbinding.
FAQ en probleemoplossing
De SMTP-verificatie geeft altijd “Niet geverifieerd” terug. De uitgaande poort 25 is waarschijnlijk gesloten door uw hoster. Schakel de SMTP-sonde uit: de domeinverificatie (MX) volstaat in de meeste gevallen.
Legitieme klanten verschijnen als “Risicovol”. Hun mailserver is een catch-all (hij accepteert alle adressen). Dat is servergedrag, geen fout; deze klanten worden nooit automatisch verwijderd.
De opschoning verwijdert geen enkele klant terwijl de teller Ongeldig positief is. Controleer de optie “Klanten met bestellingen beschermen”: ongeldige klanten met een bestelling worden bewust genegeerd.
De blokkering bij registratie wordt niet geactiveerd. Sommige modules voor snelle login of pop-ups maken de klant aan zonder via het standaardformulier van PrestaShop te gaan; in dat geval blijft de verificatie verzekerd direct na het aanmaken van het account, en verschijnt de klant dan als “Ongeldig” in de lijst.
Vertraagt de verificatie de registratie? Nee. Bij de registratie wordt alleen de snelle verificatie (syntaxis en domein) uitgevoerd. De SMTP-sonde komt alleen tussen bij de massaverificaties vanuit de back-office.