Mails via mail() er ulæselig
Når jeg sender mails ud via mail()-funktionen er der nogle mail-servere/klienter der gør mailen ulæselig (eksempelvis Ofir). Har i oplevet det før og hvad i himlens navn kan der være galt. Jeg mener jeg overholder MIME formatet (se koden):>===== Original Message From mail@mail.dk =====
>ýW§µéb²×Ÿ¢Yþ{½çjzµvË^þ™ZvÇ«þþŠÚž
Iǧþz¢¶â×¥±Šzz¹ÞþøýÛ²ÖŠ
þ)íz·¬±êÞjj
z©ì
þ¢¶§zŠ’G«…çl¥êì¢v¥þ«þ«þWŠ
¦V±êJJâž×§þ‰êçžÖ¤µëþ}©]þø¥þ7 þ
«j÷zzWŸ¢zY^ýÛŠ
IþêÞýêŠ{^ ë,z· Š|®‹$ŠW^ý÷¬¶+ÚüW¬¶+Ú–Èb–ÉÞ¬Ib¶Ç!j:¶§qéÞ
KODE
$from or die("sender address missing");
$to or die("recipient address missing");
$boundary="Message-Boundary-19990614";
$mp = popen("/usr/sbin/sendmail -f $from $to", "w");
$patterns[0] = "/ø/";
$patterns[1] = "/å/";
$patterns[2] = "/æ/";
$patterns[3] = "/ /";
$patterns[4] = "/Ø/";
$patterns[5] = "/Å/";
$patterns[6] = "/Æ/";
$replacements[6] = "=F8";
$replacements[5] = "=E5";
$replacements[4] = "=E6";
$replacements[3] = "_";
$replacements[2] = "=D8";
$replacements[1] = "=C5";
$replacements[0] = "=C6";
$subject = preg_replace($patterns, $replacements, $subject);
fputs($mp, "MIME-Version: 1.0\n");
fputs($mp, "Content-Type: Multipart/Mixed; boundary=\"$boundary\"\n");
fputs($mp, "Content-Transfer-Encoding:Base64\n");
fputs($mp, "From: $from\n");
fputs($mp, "To: $to\n");
fputs($mp, "Subject: =?ISO-8859-1?Q?".$subject."?= \n");
fputs($mp, "--$boundary\n");
fputs($mp, "Content-Type: text/plain; charset=\"ISO-8859-1\"\n");
// fputs($mp, "\n");
fputs($mp, $message1."\n");
if(sizeOf($filename)>0)
{
//$AttmFiles=array("/var/www/xml/documents/".$filename);
$AttmFiles=$filename;
if($AttmFiles){
foreach($AttmFiles as $AttmFile){
$AttmFile = ereg_replace(' ', '_', $AttmFile);
$patharray = explode ("/", $AttmFile);
$FileName=$patharray[count($patharray)-1];
$fd2=fopen ($AttmFile, "r");
$FileContent=fread($fd2,filesize($AttmFile));
fclose ($fd2);
$FileContent=chunk_split(base64_encode($FileContent));
fputs($mp, "--$boundary\n");
fputs($mp, "Content-Type: application/octet-stream; name=\"$FileName\"\n");
fputs($mp, "Content-Transfer-Encoding: base64\n");
fputs($mp, "Content-Disposition: attachment; filename=\"$FileName\"\n");
//fputs($mp, "\n");
fputs($mp, "$FileContent\n");
//fputs($mp, "\n");
}
}
$message.="\n--".$boundary."--\n";
}
fputs($mp, "--$boundary" . "--\n");
pclose($mp);
