10

我正在尝试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.

4

2 回答 2

24

您必须在 Zend_Mail 构造函数中将编码设置为 UTF-8:

$mail = new Zend_Mail('UTF-8'); 

还要确保 $mailBody 包含 UTF-8 文本。

于 2012-02-01T14:46:10.863 回答
1

使用 :

$mail->setBodyHtml();

代替 :

$mail->setBodyText();

问题将是短暂的。

于 2012-02-01T10:21:30.147 回答