我正在尝试使用Zend_Mail
使用以下代码发送邮件:
function sendMail() {
$config = array('auth' => 'login',
'username' => 'UserName',
'password' => 'Password',
'port'=>'27');
$mail = new Zend_Mail();
$mail->setBodyText($mailBody);
$mail->setFrom('example@host.com', 'The Company Name');
$mail->addTo('example@host.com', 'Recipient Name');
$mail->setSubject('Mail subject');
$mail->send(new Zend_Mail_Transport_Smtp('example@server.com', $config));
}
现在的问题是$mailBody
有法语字符。例如:
Merci d'avoir passé commande avec Lovre. Voici le récapitulatif de votre commande
当发送的邮件被查看时,同样的行显示如下:
Merci d'avoir pass? commande avec Lovre. Voici le r?capitulatif de votre commande
口音被问号所取代!我尝试使用utf8_encode
对邮件正文进行编码,但问题仍然存在。
注意:使用file_get_contents
从文本文件中读取正文内容。
答案 0 :(得分:23)
您必须在Zend_Mail构造函数中将编码设置为UTF-8:
$mail = new Zend_Mail('UTF-8');
还要确保$ mailBody包含UTF-8文本。
答案 1 :(得分:1)
使用:
$mail->setBodyHtml();
而不是:
$mail->setBodyText();
问题会很短暂。