Ich habe Probleme beim Senden von E-Mails an meinen Posteingang (Google Mail-Konto), wird jedoch jedes Mal in den Spam-Ordner verschoben
//$ticketDetail is array which contain required information to send.
sendOwnershipEmail('[email protected]', $ticketDetail);
function sendOwnershipEmail($email, $ticketDetail) {
$param = new stdClass();
$param->content = "<div>
<div><b>".$ticketDetail[0]['ticket_number']."</b></div><br/>
<div><img src='".$ticketDetail[0]['image_path']."'/></div><br/>
<div>Ticket with ticket number ".$ticketDetail[0]['ticket_number']." has been requested for tranfer from <div/>
<div>".$ticketDetail[0]['oldDepartment']." to ".$ticketDetail[0]['newDepartment']." Department <div/>
</div>";
$param->sendTo = $email;
$param->subject = "Request for Department transfer";
sendMailFunction($param);
}
function sendMailFunction($param) {
$to = $param->sendTo;
$subject = $param->subject;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: [email protected]' . "\r\n";
$message = "<html><head>" .
"<meta http-equiv='Content-Language' content='en-us'>" .
"<meta http-equiv='Content-Type' content='text/html; charset=windows-1252'>" .
"</head><body>" .$param->content.
"<br><br></body></html>";
mail($to, $subject, $message, $headers);
}
Und ich habe schon oft versucht, Header als Reply-To, Return-Path usw. zu setzen, aber jedes Mal geht es um Spam ..
Das Problem ist einfach, dass die PHP-Mail-Funktion keinen gut konfigurierten SMTP-Server verwendet.
Heutzutage führen E-Mail-Clients und Server umfangreiche Überprüfungen auf den sendenden E-Mail-Servern durch, beispielsweise Reverse-DNS-Lookups, Graylisting und Whatevs. Alle diese Tests schlagen mit der Funktion php mail () fehl. Wenn Sie eine dynamische IP verwenden, ist es noch schlimmer.
Verwenden Sie die PHPMailer-Klasse und konfigurieren Sie sie für die Verwendung von smtp-auth zusammen mit einem gut konfigurierten, dedizierten SMTP-Server (entweder einem lokalen oder einem Remote-Server), und Ihre Probleme sind vorbei.
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$headers .= "From: [email protected]" . "\r\n" .
"Reply-To: [email protected]" . "\r\n" .
"X-Mailer: PHP/" . phpversion();
Aus einigen Gründen.
Eines davon ist die Notwendigkeit eines Reply-To
und
Die Verwendung von Apostrophen anstelle von Anführungszeichen. Diese beiden Dinge in meiner Erfahrung mit Formularen lösen normalerweise eine Nachricht aus, die in der Spam-Box endet.
Sie können auch versuchen, den $from
zu ändern:
$from = "[email protected]";
Siehe diese Links, die ich zum Thema gefunden habe https://stackoverflow.com/a/9988544/1415724 und https://stackoverflow.com/a/16717647/1415724 und https: // stackoverflow.com/a/9899837/1415724
https://stackoverflow.com/a/5944155/1415724 und https://stackoverflow.com/a/6532320/1415724
Versuchen Sie es mit dem SMTP-Server Ihres ISP.
Das hat anscheinend für viele funktioniert: X-MSMail-Priority: High
http://www.webhostingtalk.com/showthread.php?t=931932
"Mein Host hat mir dabei geholfen, DomainKeys und SPF-Einträge in meiner Domäne zu aktivieren. Wenn ich nun eine Testnachricht an meine Hotmail-Adresse sende, landet sie nicht bei Junk .) Diese Einstellungen waren eigentlich ganz einfach zu aktivieren in cPanel unter E-Mail-Authentifizierung. Ich kann nicht glauben, dass ich das noch nie gesehen habe . Es funktioniert übrigens nur mit SMTP über Phpmailer. Auf andere Weise wird es noch als Spam markiert. "
PHPmailer sendet E-Mails in Hotmail an Spam. wie zu beheben http://Pastebin.com/QdQUrfax
Wenn Sie dies über Ihren eigenen Mail-Server senden, müssen Sie möglicherweise einen "Absender" -Header hinzufügen, der eine E-Mail-Adresse von Ihrer eigenen Domäne enthält. Google Mail wird die E-Mail wahrscheinlich per E-Mail versenden, da es sich bei der FROM-Adresse um eine Google Mail-Adresse handelt, die jedoch nicht von ihrem eigenen Server gesendet wurde.
Was wir normalerweise mit E-Mails tun und Spam-Ordner als Endziel verhindern, ist die Verwendung von Google Mail als SMTP-Server oder Mandrill als SMTP-Server.
Ich habe festgestellt, dass die von Ihnen angegebene E-Mail-Adresse wahrscheinlich keine gültige E-Mail-Adresse in der Domain ist. wie [email protected] Die E-Mail sollte bei Google Domain vorhanden sein. Ich hatte eine Menge Probleme bevor ich das herausgefunden habe ... Hoffe es hilft.