Der Martin: PHP Mail: Anhang mehrmal in der Mail

Beitrag lesen

Hallo,

ich versende eine email in einer PHP-Schleife mit einem Dateianhang (PDF).
Diese email kommt auch beim den Empfängern an, aber der Dateianhang ist in jeder email (unregelmässig) verteilt.
Mal ist das PDF einmal angehangen, in manchen emails auch zweimal oder noch öfter. Manchmal ist die email auch noch als Anhang im Textformat in der Anlage...

diese Beschreibung kommt mir schon mal sehr verdächtig vor - irgendwas, das im einen Moment korrekt funktioniert und dann wieder nicht, ohne dass am Code was geändert wurde ...

$dateiname = "Musteranhang.pdf";
$pdf->Output($dateiname);

Was macht diese Funktion?

$mail_header = "From: Mustermann Mustermann@Mustermann.com\r\n";
$mail_header .= "MIME-Version: 1.0" . "\r\n";
$mail_header .= "Content-Type: multipart/mixed;\n";
$mail_header .= " boundary="{$mime_boundary}"";

Du solltest dich entscheiden: Entweder verwende \r\n, oder nur \n - aber bitte konsequent. Wenn das Script auf einem Windows-basierten Host läuft, solltest du *immer* \r\n nutzen, bei Unix-artigen Systemen ist häufig nur \n angesagt und das Hinzufügen eines \r führt zu falschen Ergebnissen.

$file = fopen("$dateiname",'rb');
$data = fread($file,filesize("$dateiname"));
fclose($file);

Wozu bettest du die Variable, die den Dateinamen enthält, nochmal in einen String ein? Das ist Unsinn, solange man sie nicht mit anderen Ausgaben kombiniert.

//MESSAGE FÜR EMPFÄNGER
//#######################################################
$message .= "--{$mime_boundary}\n" .
"Content-Type:text/plain\n" .
"Content-Transfer-Encoding: 8bit\n\n";

Aha, hier verwendest du wieder nur \n.

Warum das Ergebnis von Ma(i)l zu Ma(i)l unterschiedlich ausfällt, ist anhand dieser Codeauszüge aber auch noch nicht erklärbar.

So long,
 Martin

--
Moskito, ergo summ.