Mail, UTF8 und Sonderzeichen
    
ziegenpeter
    
    
      
    
  - php
 
0 ziegenpeter0 hotti
0 
 dedlfix
    
    
  0 
 Felix Riesterer
    
    
  0 tami0 tami
Hallo,
ich verschicke mit PHP eine Email:
mail($user['username'] . '<' . $user['email'] . '>', 'Subject', utf8_decode($message), $header)
Anwendung ist in UTF8, Umlaute kommen in der Mail korrekt an, nur statt folgender Anführungszeichen: „“ erscheinen nur Fragezeichen.
Wie bekomme ich die richtig angezeigt?
Danke, ziegenpeter
Hallo,
ich verschicke mit PHP eine Email:
Ach ja, eine Text-Mail.
ziegenpeter
hi,
ich verschicke mit PHP eine Email:
Ach ja, eine Text-Mail.
Die Header müssen das korrekt deklarieren, dann wird die Mail auch richtig angezeigt, der erste Header wäre hiezu:
Content-Type: text/plain; Charset=UTF-8
Nun zur Message, Charset ist ein Ding. Das andere Ding ist das Transfer-Encoding, nochn Header:
Content-Transfer-Encoding: quoted-printable
oder
Content-Transfer-Encoding: base64
Die Message wäre also base64 oder quoted-printable zu encoden.
Tach!
ich verschicke mit PHP eine Email:
mail($user['username'] . '<' . $user['email'] . '>', 'Subject', utf8_decode($message), $header)
Anwendung ist in UTF8, Umlaute kommen in der Mail korrekt an, nur statt folgender Anführungszeichen: „“ erscheinen nur Fragezeichen.
utf_decode() dekodiert UTF-8 zu ISO-8859-1. Diese Anführungszeichen sind darin nicht enthalten, gehen also verloren.
Wie bekomme ich die richtig angezeigt?
Mail UTF-8-kodiert schicken oder nach Windows-1252 kodieren. Aber auch bei letzterem können dir Zeichen verlorengehen.
dedlfix.
Lieber ziegenpeter,
ich habe das für meine Bedürfnisse (als Methode einer Klasse) so gelöst:
	public  function send_mail ($to, $from, $subject, $text, $return_path) {  
		$header = sprintf(  
			"MIME-Version: 1.0\r\n"  
				. "Content-Type: text/plain; charset=utf-8\r\n"  
				. "Content-Transfer-Encoding: 8bit\r\n"  
				. 'From: "%1$s" <%2$s>'."\r\n"  
				. '%3$s',  
			$from['name'],  
			$from['address'],  
			(empty($return_path) ? '' : sprintf(  
				"Reply-To: %s\r\n",  
				$return_path  
			))  
		);  
  
		$subject = sprintf(  
			'=?UTF-8?B?%s?=',  
			base64_encode($subject)  
		);  
  
		// send mail  
		return mail(  
			$to,  
			$subject,  
			wordwrap($text, 60),  
			$header,  
			"-f $to"  
		);  
	}
Vielleicht nützt es Dir ja etwas...
Liebe Grüße,
Felix Riesterer.
hi ziegenpeter,
oder http://forum.de.selfhtml.org/archiv/2014/5/t217437/#m1493705 und bezüglich UTF8: http://framework.zend.com/manual/1.12/de/zend.mail.character-sets.html
mfg
tami
hi tami,
hi ziegenpeter,
oder http://forum.de.selfhtml.org/archiv/2014/5/t217437/#m1493705 und bezüglich UTF8: http://framework.zend.com/manual/1.12/de/zend.mail.character-sets.html
bzw.
http://framework.zend.com/manual/2.0/en/modules/zend.mail.message.html
"By default, the Message class assumes ASCII encoding for your email. If you wish to use another encoding, you can do so; setting this will ensure all headers and body content are properly encoded using quoted-printable encoding.
$message->setEncoding("UTF-8");  
~~~"  
  
mfg  
  
tami