Ich bin jetzt mehr mit dem Senden von Massen-E-Mails mit SMTP. Bevor ich E-Mails sende, muss ich prüfen, ob diese E-Mail-Adressen gültig sind. Ich habe einen Code, um es zu überprüfen & Ich habe es unten hinzugefügt. Es ist von den Github. Ich brauche nur bestätigen mit Ihnen alles, dass mit diesem DNS-Port überprüft, macht es unseren Server in einem Problem wie Blacklisting etc .., beim Überprüfen viele Mails, die nicht gültig sind?E-Mail-Domain-Validierung mit DNS-Einchecken in 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;
}
}
?>
Wenn Sie eine bessere Idee haben, mir zu helfen, schreiben Sie bitte & Hilfe. Ich danke Ihnen im Voraus.
Ty, für die Antwort. Ich werde es prüfen. – Sinto