[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));
    

Anmelden zum Antworten