E-mail spam is een groot probleem anno 2021. De mensheid is ontzettend veel tijd kwijt met het verwijderen van onzinnige mailtjes over pillen en penisvergrotingen. Er zijn al veel oplossingen bedacht om de hoeveelheid spam te reduceren. Zo wordt er op mailserverniveau al veel afgevangen en zijn er al vele soorten Captcha’s zoals Recaptcha. Ondanks deze maatregelen sluipt er toch geregeld spam tussendoor.
De meeste spam komt van specifieke domeinen of van de bekende mail-providers zoals Yahoo.com, Hotmail.com en Gmail.com. Indien een spambot een emailadres invult waarvan het domein op de blacklist staat dan wordt deze gewijgerd. Deze oplossing is met name interessant voor B2B bedrijven. De echt serieuze bezoekers hebben doorgaans wel een mailadres op hun eigen domein.
Ook wordt er veel spam verstuurd vanaf je eigen domeinnaam. Wijzelf krijgen geregeld mails waarvan de afzender een @brandforward.nl adres heeft. Het is één van de manieren van spammers om onder de mailfilters uit te komen. Het is daarom aan te raden om je eigen domein ook op te nemen in deze blacklist. Immers: je gaat zelf nooit je eigen webformulieren invullen.
Let op: Deze code zorgt ervoor dat mensen geen formulieren meer in kunnen vullen met een @hotmail.com, @gmail.com of een @yahoo.com adres. Hebben jouw bezoekers of klanten wel een adres van dit type? In dat geval raden wij jou af om deze code te gebruiken.
Deze code werkt alleen icm Elementor forms. Het werkt niet met Contact Form 7, Gravity forms of andere Form-plugins.
Je kunt deze code ook gebruiken om andere specifieke domeinnamen van spammers op te nemen in de blacklist.
Hoe deze code toe te passen
Dit stukje code moet komen in een bestand genaamd functions.php. Dit bestand kun je vinden in het WordPress template van jouw website. Het is aan te raden om een zgn WordPress Child-theme van jouw template te installeren. Als je de aanpassing maakt in het ‘normale’ template dan gaan de wijzigingen die je gemaakt hebt verloren als dat template een update krijgt.
Om het bestand te editen kun je het beste met FTP / SFTP verbinden en het volgende bestand met een editor openen”
/wp-content/themes/<jouw template naam>-child/functions.php
Indien FTP / SFTP lastig is dan kun je ook een file-editor plugin installeren. Een goede is: Advanced File Manager
Het is het beste om deze plugin weer te verwijderen als je klaar bent aangezien dit type plugins een risico kan zijn.
Onderin het functions.php bestand plak je de volgende code:
add_action( 'elementor_pro/forms/validation/email', function( $field, $record, $ajax_handler ) {
// validate email format
if ( ! is_email( $field['value'] ) ) {
$ajax_handler->add_error( $field['id'], 'Invalid Email address, it must be in the format XX@XX.XX' );
return;
}
$black_list_domains = [
'gmail.com',
'yahoo.com',
'hotmail.com',
];
$email_domain = explode( '@', $field['value'] )[1];
if ( in_array( $email_domain, $black_list_domains ) ) {
$ajax_handler->add_error( $field['id'], 'Invalid Email address, emails from the domain ' . $email_domain . ' are not allowed.' );
return;
}
}, 10, 3 );
Je kunt eventueel jouw eigen domeinnaam of andere domeinen waaarvan je vaak spam krijgt toevoegen.
Testen of het werkt
Je kunt testen of de code werkt door naar een elementor form op jouw website te gaan. Probeer een webformulier te versturen met een e-mailadres wat in de blacklist is opgenomen. Als het goed is zie je iets vergelijkbaars als:
Kom je er niet uit? Neem dan contact met ons op. Gebruik dan in ieder geval niet een hotmail.com of yahoo.com mailadres bij het invullen van het formulier ^_^