Mit FPDF erzeugtes PDF per Mail versenden

dwex

Erfahrenes Mitglied
Mit FPDF erzeugtes PDF per Mail versenden und ein 2tes PDF anhängen

Hallo,

wiedereinmal bin ich über meine Grenzen gestolpert.

Ich habe mir mal die FPFD-Geschichte unter www.fpdf.org reingezogen.
Jetzt habe ich ein komplettes PDF (testweise) erstellt.
Das Ganze sieht dann so aus.
PHP:
<?php
header("Content-type: application/pdf");
require('fpdf.php');

$test = "Das ist der Text";

$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','',10);
$pdf->Image('logo.jpg',130,10,70,0,jpg);
$pdf->Ln(5);
$pdf->Cell(25,10,'Hallo Welt!');
$pdf->Ln(5);
$pdf->Cell(60,10,$test,0,1,'L');
$pdf->Ln(15);
$pdf->SetFont('Arial','',5);
$pdf->Write(3,'Das ist jetzt ein Text - wir werden diesen jetzt einfach mehrmals kopieren um das teil länger zu machen. Das ist jetzt ein Text - wir werden diesen jetzt einfach mehrmals kopieren um das teil länger zu machen. Das ist jetzt ein Text - wir werden diesen jetzt einfach mehrmals kopieren um das teil länger zu machen. Das ist jetzt ein Text - wir werden diesen jetzt einfach mehrmals kopieren um das teil länger zu machen. Das ist jetzt ein Text - wir werden diesen jetzt einfach mehrmals kopieren um das teil länger zu machen.');
$pdf->Output();
?>
Das klappt auch schon ganz gut und mein Browser gibt mir das PDF aus - bzw. zeigt es an.

So jetzt mache ich folgendes:
PHP:
<?php
//header("Content-type: application/pdf");
require('fpdf.php');

$bla = time();

$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','',10);
$pdf->Image('logo.jpg',130,10,70,0,jpg);
$pdf->Ln(5);
$pdf->Cell(25,10,'Hallo Welt!');
$pdf->Ln(5);
$pdf->Cell(60,10,$test,0,1,'L');
$pdf->Ln(15);
$pdf->SetFont('Arial','',5);
$pdf->Write(3,'Das ist jetzt ein Text - wir werden diesen jetzt einfach mehrmals kopieren um das teil länger zu machen. Das ist jetzt ein Text - wir werden diesen jetzt einfach mehrmals kopieren um das teil länger zu machen. Das ist jetzt ein Text - wir werden diesen jetzt einfach mehrmals kopieren um das teil länger zu machen. Das ist jetzt ein Text - wir werden diesen jetzt einfach mehrmals kopieren um das teil länger zu machen. Das ist jetzt ein Text - wir werden diesen jetzt einfach mehrmals kopieren um das teil länger zu machen.');
$pdf->Output($bla.'.pdf','F');
echo "PDF-Datei mit dem Dateinamen $bla.pdf generiert";

$file = "$bla.pdf";
$file_name = "Ihre_Bestellung.pdf";
$from = "meine@mailadressewelcheesnichtgibt.com";
$to = "meine@mailadressewelcheesnichtgibt.com";
$boundary = strtoupper(md5(uniqid(time())));
$message = "Vielen Dank für Ihre Bestellung!\n\nWir haben diese unter der Bestellnummer $bla aufgenommen.\n\nDer Boundaryeintrag hat folgenden Wert: $boundary";
$mail_header  = "From:Test <$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";
$mail_header .= "\nContent-Type: text/plain";
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n$message";
$file_content = fread(fopen($file,"r"),filesize($file));
$file_content = chunk_split(base64_encode($file_content));
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: application/octetstream; 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($to,"Betreff",$message,$mail_header);


?>

Die Datei wird jetzt korrekt erstellt und per Mail versendet.
Jetzt möchte ich aber noch eine 2te PDF-Datei (AGB´s) welche bereits in dem Verzeichnis auf dem Server liegt mitsenden. Bisher waren meine Versuche leider erfolglos.

Wie kann ich denn eine 2te Datei mitsenden?

Vielen Dank für eure Hilfe im Voraus!
 
Zuletzt bearbeitet:
Erst mal vielen Dank für die Anregung, ist in etwa das, was ich gesucht habe.
Versand der zweiten Datei: warum wiederholst du nicht einfach den zweiten Teil des Scripts und gibts unter $file-content und fopen/freads nicht den Namen der AGB-pdf-Datei an. Schließlich weißt du doch wo deine AGBs liegen.
Andere Frage: Dein Browser meckert nicht, obwohl du in der Mitte des Scripts eine echo-Anweisung hast? Liegt das am Parameter F in der output-Anweisung? Ich arbeite für gewöhnlich mit D und dann ist ein echo tödlich.




==========================================================
"Einen großen Teil meines Vermögens habe ich für schnelle Autos, Frauen und Alkohol ausgegeben. Den Rest habe ich verschwendet!" George Best
 
Hat Du zwischen dem ersten und zweiten PDF die zwei Bindestriche nach dem
Code:
$mail_header .= "\n--$boundary--";
dringelassen?
Meiner Meinung nach dürfen die nur beim Abschluss der kompletten Mail erscheinen.
Sonst einfach Dir eine Mail mit Outlook oder ähnlichem erstellen und zusenden und Dir den Quelltext anschauen und vergleichen.

Ich hoffe, ich konnte helfen.
Schöne Grüsse
 

Neue Beiträge

Zurück