Hallo,
ich befasse mich schon seit Tagen mit dem gleichen Problem und hab auch bei google.de etc. nichts passendes gefunden:
Aus Scripten heraus versenden wir Mails immer über eine Funktion, die direkt "sendmail" anspricht. Mit "text/plain"-Mails ist das auch kein Problem. Jetzt kommt allerdings hinzu, dass eine PDF-Datei als Anhang mit verschickt werden soll.
Folgende Funktion habe ich schon "zusammengeschustert":
function sendmail ($empfaenger, $subject, $str, $rechnr) {
$fp = popen('/usr/sbin/sendmail -f "xxx@xxx.de" "'.$empfaenger.'"',"w");
if(!$fp) {
return false;
}
else
{
$file = ("rechnungen/".$rechnr.".pdf");
$fo = fopen ($file, "rb");
$data = fread($fo,filesize($file));
fclose($fo);
fputs ($fp, "From: xxx@xxx.de\n");
fputs ($fp, "To: ".$empfaenger."\n");
fputs ($fp, "Subject: Testmail\n");
fputs ($fp, "MIME-Version: 1.0\n");
fputs ($fp, "Content-Type: MULTIPART/MIXED; BOUNDARY=8323328-2120168431-824156555=:325\n");
fputs ($fp, "--8323328-2120168431-824156555=:325\n");
fputs ($fp, "Content-Type: application/octet-stream; name="".$rechnr.".pdf"\n");
fputs ($fp, "Content-Transfer-Encoding: BASE64");
fputs ($fp, "Content-Description:\n");
fputs ($fp, $data);
fputs ($fp, "--8323328-2120168431-824156555=:325--\n");
fputs ($fp, "Content-Type: text/plain; charset=US-ASCII\n\n");
fputs ($fp, "der normale mailtext\n";
fputs ($fp, "--8323328-2120168431-824156555=:325\n");
pclose($fp);
return true;
}
}
Egal, was ich schraube, es klappt nicht. Der normale Mailtext kommt allerdings so nie an. Das PDF als Anhang ist vorhanden, aber leider kein richtiges PDF. Müsste man das PDF auf andere Art encoden? Weiß jemand, warum der Text nicht ankommt?
Würde mich über Tipps freuen. Bin langsam am verzweifeln :)
PS: Mit reinen Text-Mails macht diese Funktion keine Probleme und ist so schon seit Monaten im Einsatz.
Andreas