phpbar.de logo

Mailinglisten-Archive

[php] mail mit mehreren attachments

[php] mail mit mehreren attachments

Michael Borchers borchers at tridem.de
Don Mar 24 10:48:28 CET 2005


das skript hat zwar mehrere anh�nge, allerdings l�sst sich immer nur der erste �ffnen.
der fehler liegt also wahrsch in der foreach schleife und dem aufbau durch boundary und \n.
kennt jmd spontan die richtige kombination?!

	$boundary = md5(uniqid(time())); 

	$header = "To: " . $to;
	$header  = "From: " . $from . "\n";
	$header .= "Cc: " . $cc . "\n";;
	$header .= "Bcc: " . $bcc; 

	$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/plain";
	$header .= "\n"; 
	$header .= "Content-Transfer-Encoding: 8bit"; 
	$header .= "\n\n"; 
	$header .= "$message";
	
	// multiple attachments
	if (is_array($attachments))
	{
	    foreach($attachments as $attachment)
		{
    		if ($attachment['tmp_name'] != "none" && !empty($attachment['tmp_name']))
			{
				$header .= "\n"; 
				$header .= "--$boundary"; 
				$header .= "\n";
				$header .= "Content-Type: " . $attachment['type'] . "; name=" . $attachment['name'];
				$header .= "\n"; 
				$header .= "Content-Transfer-Encoding: base64"; 
				$header .= "\n"; 
				$header .= "Content-Disposition: attachment; filename=" . $attachment['name'];
				$header .= "\n\n"; 
				
				// read attachment
				$attachment_fread .= fread(fopen($attachment['tmp_name'], "r"), filesize($attachment['tmp_name'])); 

				$header .= chunk_split(base64_encode($attachment_fread)); 
			} // ($attachment['tmp_name'] != "none" && !empty($attachment['tmp_name']))
		} // foreach
	} // is_array($attachments)

	$header .= "\n"; 
	$header .= "--$boundary--"; 

	$mail = mail($to, $subject, "", $header);

php::bar PHP Wiki   -   Listenarchive