3 Stimmen

Von Shared Hosting gesendete E-Mails werden blockiert. Gibt es eine Möglichkeit, dies zu vermeiden?

Ich habe auf meiner Website ein PHP-Skript, das automatisch eine Bestellbestätigung an meine Kunden schickt. Die Domain meiner Website ist bei einer Firma registriert, die auch meine Website hostet. Ich habe eine Menge Probleme, E-Mails mit der mail()-Funktion an einige E-Mail-Konten zu senden ... viele meiner Benutzer kontaktieren mich und sagen, dass sie meine automatische E-Mail nie erhalten haben! Das ist also ein sehr großes Problem!

Die Konten, die mir mehr Probleme bereiten, sind comcast.net, uol.com, mchsi.com und andere! Ich habe mich mit dem Support-Center dieser E-Mail-Anbieter in Verbindung gesetzt und darum gebeten, meine IP-Adresse ebenfalls aus der Blockierliste zu entfernen.

Die Kopfzeile der E-Mail sieht wie folgt aus:

$header = "Sender: $from_mail\n";
$header .= "From: Account <$from_mail>\n";
$header .= "Reply-To: Account <$from_mail >\n";
$header .= "Content-Type: multipart/mixed; boundary=$mixed_boundary\n";
$header .= "Mime-Version: 1.0\n";
$header .= "X-Mailer: PHP/".phpversion()."\n";

$body = "\n--$mixed_boundary\n";
.
.
.
.
$body .= "\n\n--$mixed_boundary--";

mail($to, $subject, $body, utf8_encode($header), "-f$from_mail");

Gibt es etwas, das ich versuchen kann, um dieses Problem zu vermeiden? Weiß jemand, wo ich nachsehen kann, welche IP-Adresse der Server hat, der für die Zustellung von E-Mails verwendet wird, wenn ich an die PHP-Funktion mail() denke?

Vielen Dank im Voraus für Ihre Antworten!!!


Hallo,

noch heute blockieren einige E-Mail-Provider wie Comcast meine IP-Adressen mit der Begründung, dass mein Mailserver Spams versendet ... Ich habe die Entfernung von der Blockliste beantragt, aber ihr System blockiert sie weiterhin! Ich weiß nicht, was ich noch tun kann ... Ich habe Ihre Vorschläge befolgt und der Code sieht wie folgt aus:

$md5 = md5(date('r', time()));
$mixed_boundary = "PHP-Mixed-$md5";
$alt_boundary = "PHP-Alt-$md5";

$header = "Sender: $from_mail\r\n";
$header .= "Errors-To: $from_mail\r\n";
$header .= "From: account <$from_mail>\r\n";
$header .= "Reply-To: $from_mail\r\n";
$header .= "Content-Type: multipart/mixed; boundary=$mixed_boundary\r\n";
$header .= "Mime-Version: 1.0\r\n";
$header .= "X-Mailer: PHP/".phpversion()."\r\n";

$body = "\n--$mixed_boundary\n";
$body .= "Content-Type: multipart/alternative; boundary=$alt_boundary\n";
.
.
.
.
$body .= "--$mixed_boundary\n";
$body .= "Content-Disposition: attachment filename=\"...\"\n";
$body .= "Content-Type: application/octet-stream; x-unix-mode=0644; name=\"...\"\n";
$body .= "Content-Transfer-Encoding: base64\n";
.
.
.
.
$body .= "\n\n--$mixed_boundary--";

mail($to, $subject, $body, utf8_encode($header), "-f$from_mail");

Vorschläge?

Nochmals vielen Dank!

0 Stimmen

Ein Blick in die PHP-Dokumentation für die mail()-Funktion zeigt, dass die Kopfzeilen mit " \r\n ", nicht nur mit " \n " wie in Ihrem Beispiel. Könnte sein, dass " \r\n "von der Spezifikation verlangt wird, aber dass Ihr Ansatz trotzdem funktioniert, da einige Mailserver liberal sind, was die Akzeptanz angeht.

0 Stimmen

In der PHP-Dokumentation heißt es, dass nur " \n "nicht mit RFC 2822 (Internet Message Format) übereinstimmt

0 Stimmen

Sondern " \r\n Sind die "Trennzeichen" für Asp Server? Oder nicht? Ich dachte, der PHP-Server verwendet " \n " als neue Zeile char!

0voto

Felix Punkte 185

Verwenden Sie PHPMailer ( http://phpmailer.worxware.com/ ) für die Erstellung der E-Mail-Nachrichten. Vielleicht liegt es nicht an der IP, sondern an etwas anderem. Es gibt viele Dinge, auf die Spamfilter allergisch reagieren (wie fehlende Message-ID etc.). Außerdem haben Sie mit PHPMailer die Möglichkeit, Ihre Mails per mail() zu verschicken oder, wenn das aufgrund von Shared-Hosting-Problemen nicht funktioniert, per SMTP über einen anderen Host (wie Gmail).

0 Stimmen

Vielen Dank für Ihre Antwort! Ich habe versucht, PHPMailer zu verwenden, aber die rohe Nachricht sieht aus wie die, die ich von Hand geschrieben habe ... es gibt keine Verbesserungen! Allerdings ist die Mine ein Abuse-Problem, so dass ich denke, dass, wenn ich meine Website auf einem virtuellen Server verschieben oder ich kaufen eine statische IP, könnte ich das Problem beheben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X