webentwicklung-frage-antwort-db.com.de

das Versenden von E-Mails über die PHP-E-Mail-Funktion geht an Spam

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 ..

26
Dinesh Nagar

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.

https://github.com/PHPMailer/PHPMailer

25
dognose

Versuchen Sie, Ihre Kopfzeile so zu ändern:

$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]";


BEARBEITEN:

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

13

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.

4
Patrick

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.

2
Emile

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.

0
Nazehs