Tom: pdf-Datei per mail versenden

Beitrag lesen

Hello,

Hallo!

Ich möchte gerne eine pdf-Datei per mail versenden.

Habe das folgende Script.

Wenn ich nur die Datei versende funktioniert es einwandfrei. Sobald ich aber eine Mehrteilige nachricht versende funktioniert es nicht mehr.

Kann mir bitte jemand sagen wo der Fehler in meinem Code ist.

mfg Michael

$boundary = strtoupper(md5(uniqid(time())));
$mail_header  = "From:HOFERNET <$from>\n";
$mail_header .= "MIME-Version: 1.0";
$mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
$mail_header .= "\n\nThis is a multi-part message in MIME format  --  Dies ist eine mehrteilige Nachricht im MIME-Format";

$mail_header .= "\n--$boundary";  ### Leerzeile?

$file_content = fread(fopen($file,"r"),filesize($file));
$file_content = chunk_split(base64_encode($file_content));
$mail_header .= "\nContent-Type: application/pdf; name="$file_name"";
$mail_header .= "\nContent-Transfer-Encoding: base64";
$mail_header .= "\nContent-Disposition: attachment; filename="$file_name"";
$mail_header .= "\n\n$file_content";
$mail_header .= "\n--$boundary";

$mail_header .= "\nContent-Type: text/plain";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n$message";
$mail_header .= "\n--$boundary";

mail($to,$betreff,$message,$mail_header);

sieht eigentlich auf den erste Blick fast gut aus, außer

  • die Zeilenende für Header sind nach Vorschrift CRLF und nicht nur LF
  • bei Chunksplit nun wieder habe ich schon mehrfach ffestsgestellt, dass da nur LF
      als Trenner durchgegangen ist. Irgendwo stand das auch...
      Leider ist da bei PHP die Vorgabe gerade anders herum.
  • Wenn ich mir z.B. von Outlook Express erzeugte Mails anschaue, dann haben die hinter
      einer Boundary auch immer eine Leerzeile...

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)