Je suis maintenant plus avec l'envoi de courriels en vrac en utilisant le protocole SMTP. Avant d'envoyer des mails j'ai besoin de vérifier que les adresses mail sont valides. J'ai un code pour le vérifier & Je l'ai ajouté ci-dessous. C'est du Github. J'ai juste besoin de confirmer avec vous tout cela en utilisant ces vérifications de port DNS, cela rend-il notre serveur dans un problème comme Blacklisting etc., en vérifiant beaucoup de mails qui ne sont pas valides?Validation domail e-mail en utilisant DNS vérifier php
<?php
function verifyEmail($toemail, $fromemail, $getdetails = false){
$email_arr = explode("@", $toemail);
$domain = array_slice($email_arr, -1);
$domain = $domain[0];
// Trim [ and ] from beginning and end of domain string, respectively
$domain = ltrim($domain, "[");
$domain = rtrim($domain, "]");
if("IPv6:" == substr($domain, 0, strlen("IPv6:"))) {
$domain = substr($domain, strlen("IPv6") + 1);
}
$mxhosts = array();
if(filter_var($domain, FILTER_VALIDATE_IP))
$mx_ip = $domain;
else
getmxrr($domain, $mxhosts, $mxweight);
if(!empty($mxhosts))
$mx_ip = $mxhosts[array_search(min($mxweight), $mxhosts)];
else {
if(filter_var($domain, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
$record_a = dns_get_record($domain, DNS_A);
}
elseif(filter_var($domain, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
$record_a = dns_get_record($domain, DNS_AAAA);
}
if(!empty($record_a))
$mx_ip = $record_a[0]['ip'];
else {
$result = "invalid";
$details .= "No suitable MX records found.";
return ((true == $getdetails) ? array($result, $details) : $result);
}
}
$connect = @fsockopen($mx_ip, 25);
if($connect){
if(preg_match("/^220/i", $out = fgets($connect, 1024))){
fputs ($connect , "HELO $mx_ip\r\n");
$out = fgets ($connect, 1024);
$details .= $out."\n";
fputs ($connect , "MAIL FROM: <$fromemail>\r\n");
$from = fgets ($connect, 1024);
$details .= $from."\n";
fputs ($connect , "RCPT TO: <$toemail>\r\n");
$to = fgets ($connect, 1024);
$details .= $to."\n";
fputs ($connect , "QUIT");
fclose($connect);
if(!preg_match("/^250/i", $from) || !preg_match("/^250/i", $to)){
$result = "invalid";
}
else{
$result = "valid";
}
}
}
else{
$result = "invalid";
$details .= "Could not connect to server";
}
if($getdetails){
return array($result, $details);
}
else{
return $result;
}
}
?>
Si vous avez une meilleure idée de me aider, s'il vous plaît poster & aide. En vous remerciant d'avance.
Ty, pour la réponse. Je vais vérifier. – Sinto