fastix®: Skript für HTML-Mails mit Grafiken

Beitrag lesen

Moin!

Vorab: Ich veröffentliche das gesamte Skript um es insgesamt zur Diskussion zu stellen. Es scheint zu funktionieren.

Wie schaffe ich es, dass anstelle dessen der Smilie auch in der Mail erscheint?

Am besten: Du hängst die passenden Grafiken an das Mail an. $images (der 6. Parameter) sollte dann ein Hash enthalten mit dem Bildern (Pfad auf dem lokalen Dateisystem)

Der Hash hat folgendes Aussehen:

$images[i]['content_type'] <- 'image/jpeg'
$images[i]['file_name'] <- './images/bild.jpg'

$text ist die Textvariante der Email. (Falls der Empfänger HTML nicht sehen will oder kann...)
$html ist die HTML-Variante der Email.

Beachte bitte die beiden unterschiedlichen Trenner.

Die etwas verbogene Version des Anbsendens war leider auf einem Testsystem notwendig. Ich habe nicht herausbekommen, woran es lag:
mb_send_mail($to, $subject,'', $headers."\n\n".$mailbody) or die ('Fehler');

Im Sinne des Erfinders  ist wohl:
mb_send_mail($to, $subject,$mailbody, $headers) or die ('Fehler');

  
<?php  
function send_mb_html_mail (  
	mb_internal_encoding("UTF-8");  
	$from_email,  
	$to_email,  
	$subject,  
	$text,  
	$html,  
	$images		=false,  
	$from_name 	=false,  
	$to_name   	=false  
) {  
  
  
  
	$boundary1='----=_'.md5(microtime());  
	$boundary2='----=_'.md5("abc".microtime());  
  
	if ($to_name) {  
		$to_name=mb_encode_mimeheader(trim($to_name), 'UTF-8', 'Q');  
		$to='"'.$to_name.'" <'.trim($to_email).'>';  
	} else {  
		$to=$to_email;  
	}  
  
  
	if ($from_name) {  
		$from_name=mb_encode_mimeheader(trim($from_name), 'UTF-8', 'Q');  
		$from='"'.$from_name.'" <'.trim($from_email).'>';  
		#die ($from);  
	} else {  
		$from=$from_email;  
	}  
  
  
	$headers='FROM: '.$from.'  
BCC: '.MAIL_SAFETY.'  
Content-Type: multipart/related; boundary="'.$boundary1.'"';  
  
	$mailbody='This is a multi-part message in MIME format.  
  
--'.$boundary1.'  
Content-Type: multipart/alternative; boundary="'.$boundary2.'"  
  
--'.$boundary2.'  
Content-Type: text/plain; charset="UTF-8"  
Content-Transfer-Encoding: 8bit  
  
'.$text.'  
  
--'.$boundary2.'  
Content-Type: text/html; charset="UTF-8"  
Content-Transfer-Encoding:  8bit  
  
'.html_leerzeilen_stripper($html).'  
  
--'.$boundary2.'--  
';  
  
	foreach ($images as $image) {  
		$ContentType=$image['content_type'];  
		$ImageName=explode('/',$image['file_name']);  
		$ImageName=$ImageName[count($ImageName)-1];  
		$ImageBase64=chunk_split(base64_encode(trim(file_get_contents($image['file_name']))));  
		$ContentID=md5($ImageBase64);  
		$mailbody=str_replace('src="'.$image['file_name'].'"', 'src="cid:'.$ContentID.'"', $mailbody);  
		$mailbody .= '  
  
--'.$boundary1.'  
Content-Type: '.$ContentType.'; name="'.$ImageName.'"  
Content-Transfer-Encoding: base64  
Content-ID: <'.$ContentID.'>  
  
'.$ImageBase64;  
  
  
	}  
  
	$mailbody.='  
  
--'.$boundary1.'--';  
  
  
return mb_send_mail($to, $subject,'', $headers."\n\n".$mailbody) or die ('Fehler');  
}  
  
function html_leerzeilen_stripper($str) {  
	$arDele=array(  
		"\n",  
		"\r",  
		"\t",  
		'<p>&nbsp;</p>',  
		'<p class="MsoNormal">&nbsp;</p>'  
	);  
	return str_replace($arDele,'',$str);  
}

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix