| 

.NET C# Java Javascript Exception

3
Hallo...

Mit der fpdf.php Klasse schreibe ich eine PDF. Sie wird auch korrekt geschrieben. Nun möchte ich diese PDF per E-Mail autom. versenden.

Im Internet habe ich den Code unten gefunden (die meisten klappten bei mir gar nicht mit Anhang). Die E-Mail kommt nun an.

Der Anhang ist dran, aber 0KB groß (anstatt 80kb in der kleinen Test PDF, wird später deutlich größer). Also leer. Nur der Name stimmt.

function myMail($to, $subject, $mail_msg, $filename, $contentType, $pathToFilename){
$random_hash = md5(date('r', time()));
$headers = "From: mail@domain.de\r\nReply-To: ".$to;
$headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
$attachment = chunk_split(base64_encode(file_get_contents($pathToFilename)));
ob_start();
echo "
--PHP-mixed-$random_hash
Content-Type: multipart/alternative; boundary=\"PHP-alt-$random_hash\"

--PHP-alt-$random_hash
Content-Type: text/plain; charset=\"utf-8\"
Content-Transfer-Encoding: 7bit

$mail_msg

--PHP-alt-$random_hash--

--PHP-mixed-$random_hash
Content-Type: $contentType; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment

$attachment
--PHP-mixed-$random_hash--
";
$message = ob_get_clean();
$mail_sent = @mail( $to, $subject, $message, $headers );
return $mail_sent ? "Mail sent" : "Mail failed";
}
myMail("mail@domain.de", "Test", "Nachricht", "datei.pdf", "application/pdf", "http://www.domain.de/pdf_generierung/datei.pdf");


Bin für Hilfe mal wieder dankbar.
Gruss
meone
News:
10.12.2012
meone 99 1 6
meone 99 1 6
2 Antworten
0
Wieso gibst Du den Mail per ECHO/Ausgabepuffer aus??? Warum schreibst Du das ganze nicht einfach gleich in eine Variable (so wie mit $headers)?

So ist Dein Script plötzlich abhängig von der "Buffer" - Implementierung des Browsers.

Übrigens: War die Antwort zu Deiner letzten Frage richtig? Dann markiere sie bitte auch als solche!
http://codekicker.de/fragen/PHP-Array-sortieren
11.12.2012
Xantiva 2,3k 2 9
Xantiva 2,3k 2 9
0
Also wie gesagt, das Skript habe ich so gefunden.

Wenn ich echo mit $headers .= austausche, funktioniert es gar nicht, also komm gar keine E-Mail an. Bei dem ganzen --PHP-mixed-$random_hash verstehe ich nur Bahnhof.

Habe nun die PHPMailer Klasse verwendet. Klappt super :)
15.12.2012
meone 99 1 6
Vielleicht wirfst Du mal einen Blick auf: http://de3.php.net/manual/de/function.echo.php
Insbesondere die Unterschiede zwischen der Verwendung von einfachen und doppelten Anführungszeichen.
Du solltest auch nicht mit $headers tauschen, denn die Ausgabe des Echo wird in Deinem Beispiel in $message gespeichert. Aber die PHPMailer Klasse ist sicherlich die beste Alternative.
Xantiva 17.12.2012
Danke. Der Unterschied war mir in der Tat leider nicht bewusst... traurig, aber danke :-)
meone 17.12.2012

Stelle deine Php-Frage jetzt!