Email Versand mit Dateianhang

thomsonz

Mitglied
Hallo liebe PHP´ler ich habe ein Problem beim Versenden einer Mail mit einem Pdf-Anhang.
ich habe das pdf erstellt abgespeichert, aber die mail wird mit leerem Text und ohne Anhang verschickt. Beim Herunterladen der Mail dauert aber länger als eine leere Mail. Vielleicht seht ihr ja mehr?
hier der code
PHP:
elseif(isset($_POST['Abschicken']))
	{
	$Empfaenger = $_POST['empfaenger'];
	$Betreff = $_POST['betreff'];

	$Dateiname = "reiseplaner/reiseplaner-".$_POST['username'].".pdf";
	$DateinameMail = "reiseplaner-".$_POST['username'].".pdf";
	$nachricht = $_POST['nachricht'];

	$Header = "From: FOOTSTEPS <mail@adresse.de>";
	
	$Trenner = md5(uniqid(time()));
	$Header .= "\n";
	$Header .= "MIME-Version: 1.0";
	$Header .= "\n";
	$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
	$Header .= "\n\n";
	
	$Trenner = md5(uniqid(time()));
	$Header .= "\n";
	$Header .= "MIME-Version: 1.0";
	$Header .= "\n";
	$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
	$Header .= "\n\n";
	$Header .= "This is a multi-part message in MIME format";
	$Header .= "\n";
	$Header .= "--$Trenner";
	$Header .= "\n";
	$Header .= "Content-Type: text/plain";
	$Header .= "\n";
	$Header .= "Content-Transfer-Encoding: 8bit"; 
	$Header .= $nachricht;
	$Header .= "\n";
	$Header .= "--$Trenner";
	$Header .= "\n";
	$Header .= "Content-Type: application/pdf; name=$DateinameMail";
	$Header .= "\n";
	$Header .= "Content-Transfer-Encoding: base64";
	$Header .= "\n";
	$Header .= "Content-Disposition: attachment; filename=$DateinameMail"; 
	$Header .= "\n\n";
	$Dateiinhalt = fread(fopen($Dateiname, "r"), filesize($Dateiname));
	$Header .= chunk_split(base64_encode($Dateiinhalt));
	$Header .= "\n";
	$Header .= "--$Trenner--";
	mail($Empfaenger, $Betreff, "", $Header); 
	}
vielen Dank
 
benutz die Mailfunktion mal so:
PHP:
mail($adr,$betreff,$text,"From: ".$email,"-f ".$email);

$adr steht für den Empfänger
$email für den Absender

lg
 
Du musst für jede mehreilige (Teil-)Nachricht immer ein und dieselbe Boundary-Zeichensequenz verwenden. Also:
Code:
MIME-Version: 1.0
Content-Type: multipart/…; boundary=boundary-1

Multipart-1
--boundary-1
	Content-Type: text/plain

	A
--boundary-1
	Content-Type: multipart/…; boundary=boundary-2

	Multipart-2
	--boundary-2
		Content-Type: text/plain

		B
	--boundary-2
		Content-Type: text/plain

		C
	--boundary-2--
--boundary-1
	Content-Type: text/plain

	D
--boundary-1--
(Einrückung nur zur Verdeutlichung der hierarchischen Struktur.)
 
Zurück