Multipart-Mail verfängt sich im Spam-Filter

DrEvil

Erfahrenes Mitglied
Hallo Leute,
ich habe ein Skript zum Versenden einer Multipart-Mail erstellt. Wird auch versandt. Soweit so gut.

Leider erkennt der Mailserver nun diese Mail als Spam. Das möchte ich natürlich verhindern. Nun finde ich leider keine Hinweise, wie eine Multipart-Mail "getrimmt" werden muss, damit sie nicht im Spam-Filter landet.

Der Mailserver gibt folgende Fehler an:
Code:
1.0 EXTRA_MPART_TYPE       Header has extraneous Content-type:...type= entry
1.5 SUBJ_ILLEGAL_CHARS     Subject: has too many raw illegal characters
1.7 MIME_HTML_ONLY         BODY: Message only has text/html MIME parts
1.8 MIME_QP_LONG_LINE      RAW: Quoted-printable line longer than 76 chars
1.3 SUBJECT_NEEDS_ENCODING SUBJECT_NEEDS_ENCODING
(Es spuckt zwar noch nen paar andere Hinweise aus, aber das sind die Punkte verursachenden Fehler.)

Ich hab auch keinerlei wirkliche Erklärung gefunden, was die einzelnen Fehler nun bedeuten sollen... :(

Auf diese Weise erzeuge ich die Multipart-Mail:
PHP:
$ImgLocation = 'mailbanner.png';
$ImgName = 'mailbanner.png';

$CID = md5(uniqid (rand(), 1));
$mime_boundary = '' . md5(uniqid(mt_rand(), 1));

$header  = "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/related; boundary=\"".$mime_boundary."\"; type=\"text/plain\"\n";
$header .= "From: mail@meine-adresse.de\n";
$header .= "Reply-To: mail@meine-adresse.de\n";
$header .= "X-Mailer: PHP ". phpversion();

$mail = "--".$mime_boundary."\n";
$mail .= "Content-Type: Text/HTML;  charset=UTF-8\n";  
$mail .= "Content-Transfer-Encoding: quoted-printable\n\n";

$mail .= '
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> <!-- Hier steht der Titel --> </title>
<style type="text/css"> <!-- Hier sind die CSS-Definitionen --> </style>
</head>

<body>
<!-- Hier steht der Mail-Inhalt -->
</body>
</html>
';//Ende $mail

$mail .= "\n\n";
$mail .= "--".$mime_boundary."\n";

$fp = fopen ($ImgLocation, "rb");
$str = fread ($fp, filesize ($ImgLocation));
$data = chunk_split(base64_encode($str));
$content = "Content-Type: image/gif\n";
$content .= "Content-ID: <$CID.$ImgName>\n";
$content .= "Content-Transfer-Encoding: base64\n";
$content .= "Content-Disposition: inline; filename=\"$ImgName\"\n\n";  
$content .= $data;
$mail .= $content;
$mail .= "--".$mime_boundary."--\n";

Konnte irgendwer dieses Problem schonmal lösen?

Danke schonmal!

Eric
 
Jo. Bin mittlerweile etwas weitergekommen:
Code:
1.5 SUBJ_ILLEGAL_CHARS     Subject: has too many raw illegal characters
1.3 SUBJECT_NEEDS_ENCODING SUBJECT_NEEDS_ENCODING
Kann durch den Verzicht auf Umlaute im Mail-Betreff gelöst werden. Nicht sehr elegant, aber erst einmal praktikabel. Ich bin für Lösungen die Umlauter ermöglichen dankbar.

Code:
1.8 MIME_QP_LONG_LINE      RAW: Quoted-printable line longer than 76 chars
Kann behoben werden, indem
PHP:
$mail .= "Content-Transfer-Encoding: quoted-printable\n\n";
durch
PHP:
$mail .= "Content-Transfer-Encoding: 8bit\n\n";
ersetzt wird.

Irgendwie alles nicht so befriedigend, aber immerhin ein Anfang.

Ich bin immer noch für weitere Tipps offen!
 
Zurück