# Mit FPDF erzeugtes PDF per Mail versenden



## dwex (20. Juni 2005)

*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
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
//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!


----------



## helaukoenig (3. Januar 2006)

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


----------



## JaguarGorgone (3. Januar 2006)

Hat Du zwischen dem ersten und zweiten PDF die zwei Bindestriche nach dem

```
$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


----------



## Dennis Wronka (4. Januar 2006)

Uebrigens, der Thread ist bereits ein halbes Jahr alt, Ihr Grabraeuber.


----------

