1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<sect1 id="zend.mail.character-sets">
<title>Character Sets</title>
<para>
<classname>Zend_Mail</classname> does not check for the correct character set of the mail
parts. When instantiating <classname>Zend_Mail</classname>, a charset for the e-mail itself
may be given. It defaults to <emphasis>iso-8859-1</emphasis>. The application has to make
sure that all parts added to that mail object have their content encoded in the correct
character set. When creating a new mail part, a different charset can be given for each
part.
</para>
<note>
<title>Only in text format</title>
<para>
Character sets are only applicable for message parts in text format.
</para>
</note>
<example id="zend.mail.character-sets.cjk">
<title>Usage in CJK languages</title>
<para>
The following example is how to use <classname>Zend_Mail</classname> in Japanese. This
is one of <acronym>CJK</acronym> (aka <acronym>CJKV</acronym> ) languages. If you use
Chinese, you may use <acronym>HZ-GB-2312</acronym> instead of
<acronym>ISO-2022-JP</acronym>.
</para>
<programlisting language="php"><![CDATA[
//We suppose that character encoding of strings is UTF-8 on PHP script.
function myConvert($string) {
return mb_convert_encoding($string, 'ISO-2022-JP', 'UTF-8');
}
$mail = new Zend_Mail('ISO-2022-JP');
// In this case, you can use ENCODING_7BIT
// because the ISO-2022-JP does not use MSB.
$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();
]]></programlisting>
</example>
</sect1>
<!--
vim:se ts=4 sw=4 et:
-->
|