Der Martin: Ist es möglich, eine Mail mit Anhang zu verschicken?

Beitrag lesen

Hallo Stefan,

Habe gesucht und versucht was zu lernen.

das unterscheidet dich positiv von vielen anderen, die hier manchmal fragen.

$Header = "From:test@example.com";

Da wäre nach dem ':' ein Leerzeichen angesagt.

$Trenner = md5(uniqid(time()));
  $Header .= "\n";
  $Header .= "MIME-Version: 1.0";
  $Header .= "\n";

Erstens: Warum hängst du den Zeilenumbruch nicht gleich zusammen mit der Headerzeile an, sondern in einer separaten Anweisung? Nicht dass es im Ergebnis einen Unterschied macht, aber es wäre m.E. leichter lesbar.
Außerdem werden Headerzeilen in Mails durch CR+LF getrennt, nicht durch einen einfachen Zeilenumbruch. Das verstehen und akzeptieren zwar auch viele Mailserver, aber korrekt ist es nicht.

$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
  $Header .= "\n\n";

So, und mit dem doppelten Zeilenumbruch sind die Header eigentlich zu Ende. Was danach kommt, ist eigentlich der Message Body. Warum verarbeitest du das alles noch als Header?

$Header .= "\n\n";
  $Header .= "Meine erste Mail mit Anhang!";
  $Header .= "\n";

Müssten hier nicht auch *zwei* Zeilenumbrüche stehen?

$Header .= "Content-Disposition: attachement; filename=$DateinameMail";
  $Header .= "\n\n";
  $Dateiinhalt = fread(fopen($Dateiname, "r"), filesize($Dateiname));
  $Header .= "\n";

Tja, und hier liest du den Inhalt der Datei in eine neue Variable, die du dann aber nirgends verwendest! Außerdem würde $Dateiinhalt nur einen Teil der Datei enthalten, wenn sie entsprechend lang ist, weil fread() nicht unbedingt die gesamte Datei am Stück liest.

mail($Empfaenger, $Betreff, "", $Header);

Okay, du übergibst zwar keinen Message Body, aber da du alles über den Parameter $Header abhandelst, würde das im Endeffekt trotzdem funktionieren - formal ist es aber eigentlich nicht richtig.

Also, die Mail kommt an, der Text "Meine erste Mail mit Anhang!" ist auch da, der Anhang "gast.txt" ist auch da, eben leider nur leer (bis auf ein Zeichen (Rechteck)).

Ja, das wundert mich nun nicht mehr ...  ;-)

Schönen Abend noch,
 Martin

--
Butterkeksverteiler zu werden ist vermutlich eine der wenigen beruflichen Perspektiven, die sich noch bieten, wenn man einen an der Waffel hat.
  (wahsaga)