Controle op bestaan van domein bij contactformulier
Door
- Ariën -
op 23-12-2022 15:51
gewijzigd op 23-12-2022 15:56
4.449 views
Deze functie heb ik gemaakt, en de bedoeling is dat ik hiermee controleer of er een bestaand domein in een mailadres gebruikt wordt in mijn contactformulier. Dus iets als bladieblaargh.nl zal geweigerd moeten worden.
Is dit nog een beetje van de tijd, of moet ik met andere dingen rekening houden?
Of heeft dit weinig zin meer omdat ik bepaalde legit domeinen uitsluit?
Ik heb het even verbeterd met een boolean als return, en een print_r.
<?php
function ValidateDomainForMail($email) {
list($user, $domain) = explode('@', $email);
$array = dns_get_record($domain, DNS_MX);
print_r($array);
if ($array[0]['host'] == $domain && !empty($array[0]['target'])) {
return true;
} else {
return false;
}
}
?>
Ik heb een aantal domeinen getest en geen probleem.
Maar als het goed is sluit ik hopelijk niemand buiten?
Deze functie heb ik gemaakt, en de bedoeling is dat ik hiermee controleer of er een bestaand domein in een mailadres gebruikt wordt in mijn contactformulier. Dus iets als bladieblaargh.nl zal geweigerd moeten worden.
Is dit nog een beetje van de tijd, of moet ik met andere dingen rekening houden?
Of heeft dit weinig zin meer omdat ik bepaalde legit domeinen uitsluit?
?>
Hangt er van af of domeinen checken echt is wat je wilt.
Omdat het in combinatie met een e-mailveld is wil je waarschijnlijk eerder het mailadres valideren. Maar dat kan niet, omdat er geen enkele wereldwijd gebruikte standaard bestaat voor mailadressen. De enige manier om een e-mailadres te valideren is door een mail te sturen naar dat adres, en een antwoord te verwachten vanaf dat mailadres.
Vanuit dat oogpunt kan je van te voren een paar logische checks bedenken op de domeinnaam. Bijvoorbeeld een geldige TLD, die kan je met de lijst van TLD's filteren. Pas dan zou ik checken op DNS record en pas daarna mailen, om het verkeer te beperken.
Je zegt dat er geen standaard is om te controleren of mailadressen kloppen. Daar heb je gelijk in.
Maar als een domein geen MX-record heeft, dan kan ik je er toch vanuit gaan dat mailen altijd zinloos is?
Ik snap wel dat niet 100% kan controleren of een alias zoals [email protected] wel zou bestaan en [email protected] weer niet. De enige oplossing is een bouncemail afwachten, maar dat is niet altijd zo op domeinen. Sommige hebben (hopelijk bewust) een catch-all draaien.
Maar het gaat mij om de domein. Zodat iets als ikbestaechtniet.nl geweigerd wordt als deze niet bestaat of een MX-record heeft.
?Onbekende gebruiker
24-12-2022 13:10
Dat is slim, om vooraf het MX-record te controleren.
Ik denk dat er veel contactformulieren zijn die dat niet hebben.
Klopt, maar ik doelde niet op de validatie. Die kende ik allang.
Het ging mij erom of de domein ervan bekend was op internet en of die mails accepteert.