Tobias Hörner: TinyMCE Smilies umsetzen

Hallo,

Smilies umsetzen funktioniert sehr gut in meinem Tiny MCE, aber wenn ich mir von der Nachricht eine Kopie per Mail schicken lasse, steht anstelle eines Smilies dann in der Mail sowas wie

<a href="javascript:EmotionsDialog.insert('21.jpg','emotions_dlg.21');"><img title="Smilie" src="tiny_mce/plugins/emotions/img/21.jpg" alt="Smilie" border="0" /></a>

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

Danke für Hilfe, Tobias

  1. <a href="javascript:EmotionsDialog.insert('21.jpg','emotions_dlg.21');"><img title="Smilie" src="tiny_mce/plugins/emotions/img/21.jpg" alt="Smilie" border="0" /></a>

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

    Also erstmal wäre ein absoluter Pfad in der img src nötig, damit das Bild in der Email angezeigt wird. Könnte mir vorstellen, dass man das beim Tiny_MCE einstellen kann.

  2. 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

    1. Moin!

      Die etwas verbogene Version des Anbsendens war leider auf einem Testsystem notwendig. Ich habe nicht herausbekommen, woran es lag

      ... dass der "Dreckn" auf dem Testserver (PHP 5.2) kein korrektes UTF-8 senden wollte.

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix