Zend_Mail
prüft nicht auf die richtigen Zeichensätze für die
Mailbestandteile. Wenn Zend_Mail
instanziiert wird, kann ein
Zeichensatz für die Mail selbst angegeben werden. Der Standardwert ist
iso-8859-1. Die Anwendung muss sicherstellen, dass die Inhalte aller
Bestandteile des Mailobjektes im richtigen Zeichensatz codiert sind. Wenn ein neuer
Mailbestandteil erstellt wird, kann für jeden Bestandteil ein anderer Zeichensatz angegeben
werden.
Nur im Textformat
Zeichensätze sind nur auf Mailbestandteile im Textformat anwendbar.
Beispiel 572. Verwendung in CJK Sprachen
Das folgende Beispiel zeigt wie Zend_Mail
im japanischen
verwendet werden kann. Das ist eine der CJK (oder auch
CJKV) Sprachen. Wenn man Chinesisch verwendet, kann man auch
HZ-GB-2312 statt ISO-2022-JP verwenden.
// Wir nehmen an das die Zeichenkodierung der Strings in PHP Skripten UTF-8 ist function myConvert($string) { return mb_convert_encoding($string, 'ISO-2022-JP', 'UTF-8'); } $mail = new Zend_Mail('ISO-2022-JP'); // In diesem Fall kann ENCODING_7BIT verwendet werden, // weil ISO-2022-JP MSB nicht verwendet $mail->setBodyText(myConvert('This is the text of the mail.'), null, Zend_Mime::ENCODING_7BIT); $mail->setHeaderEncoding(Zend_Mime::ENCODING_BASE64); $mail->setFrom('somebody@example.com', myConvert('Some Sender')); $mail->addTo('somebody_else@example.com', myConvert('Some Recipient')); $mail->setSubject(myConvert('TestSubject')); $mail->send();