[PHP / PDF] - Senden der Datei als Email...
-
Hallo Zusammen
Ich hab mir eine mime_mail-Funktion in das Script eingebaut.
Diese sollte eine auf dem Server zuvor abgespeicherte PDF-Datei an einen E-Mail empfänger senden.Die PDF-Datei wird erstellt und auch korrekt aufzufinden. Sie wird auch an mich gsendet und alles läuft Prima. Möchte ich jedoch die PDF-Datei öffnen, geht das nicht! Okay, speichere ich die PDF-Datei auf meinem Desktop und öffne Sie dann, dann erhalte ich von Adobe Reader folgende Fehlermeldung:
"Der Dateityp rechnung_temp_29822.pdf konnte nicht geöffnet werden. Bitt überprüfen Sie ob der Dateityp korrekt und die Datei nicht beschädigt ist".
WO ist hier nun der Hund begraben?? Die PDF-Datei erstelle ich mit FPDF und FPDFi, gesamter Code kann bei mir angefordert werden (PN).
function mail_mime($to, $from, $cc, $bcc, $subject, $message, $content_type, $file_src, $file_name, $file_type) { $header = "To: " . $to; $header = "From: " . $from . "\n"; $header .= "Cc: " . $cc . "\n";; $header .= "Bcc: " . $bcc; $boundary = md5(uniqid(time())); $header .= "\n"; $header .= "MIME-Version: 1.0"; $header .= "\n"; $header .= "Content-Type: multipart/mixed; boundary=$boundary"; $header .= "\n\n"; $header .= "This is a multi-part message in MIME format"; $header .= "\n"; $header .= "--$boundary"; $header .= "\n"; $header .= "Content-Type: text/" . $content_type; $header .= "\n"; $header .= "Content-Transfer-Encoding: 8bit"; $header .= "\n\n"; $header .= "$message"; //$header .= "Meine erste Mail mit Anhang!"; $header .= "\n"; $header .= "--$boundary"; $header .= "\n"; $header .= "Content-Type: image/" . $file_type . "; name=$file_name"; $header .= "\n"; $header .= "Content-Transfer-Encoding: base64"; $header .= "\n"; $header .= "Content-Disposition: attachment; filename=$file_name"; $header .= "\n\n"; $filedata .= fread(fopen($file_src, "r"), filesize($file_src)); $header .= chunk_split(base64_encode($filedata)); $header .= "\n"; $header .= "--$boundary--"; $mail = mail($to, $subject, "", $header); return $mail; } //PDF erst auf dem Server speichern $zahl = rand(0,9999999); $pdf->Output('PDFFiles/RG/rechnung_temp'.$zahl.'.pdf', 'F'); //Variabeln definieren $content_type = "plain"; $file_src = "/var/www/vhosts/globesolutions.ch/subdomains/application/httpdocs/clientis/PDFFiles/RG/"; $file_name = "rechnung_temp".$zahl.".pdf"; $file_type = "pdf"; //PDF per E-Mail versenden mail_mime($_POST['email'], "sales@globesolutions.ch", "", "", "Ihre Rechnung", "Im Anhang finden Sie die Rechnung mit der Bitte, diese innerhalb der angegebenen Frist zu bezahlen.\n\nVielen Dank.\n\nFreundliche Grüsse\n\nGlobesolutions\nIT + EDV Dienstleistungen", $content_type, $file_src, $file_name, $file_type);
Ich weiss nicht an was das liegen könnte... Ich vermute bei der Erstellung dieser PDF_Datei? Oder lieg es am Senden mit MIME-Mail?
Lg
Wolf
-
rb bei fopen benutzen => binary
-
Problem gefunden.
Hab die Zeile fread wie folgt geändert:
$filedata = fread(fopen($file_src.$file_name, "rb"), filesize($file_src.$file_name));