【发布时间】:2015-10-01 21:41:20
【问题描述】:
我需要将重音字母写入电子邮件正文,但 utf-8 编码不起作用。在 Gmail 设置中,我选择了“使用 Unicode (UTF-8) 发送邮件”选项。
我正在使用 Gmail SMTP 和 Zend\Mail\Messsage。我尝试了 4 种不同的方法,但没有一种有效。
功能齐全:
public function sendRegistrationEmail(){
$message = new Message();
$message->addTo($this->email)
->addFrom(self::FROM)
->setSubject($this->subject)
->setEncoding('UTF-8')
->setBody('àèéòù');
$transport = new SmtpTransport();
$options = new SmtpOptions($this->smtp);
$transport->setOptions($options);
$transport->send($message);
}
1:
->setBody('àèéòù');
output: à èéòù
2:
->setBody(utf8_encode('àèéòù'));
output: àèéòù
3:
->setEncoding('UTF-8')
->setBody('àèéòù');
output: à èéòù
4:
->setEncoding('UTF-8')
->setBody(utf8_encode('àèéòù'));
output:àèéòù
我尝试在 Gmail 设置中选择“避免外发邮件使用 Unicode (UTF-8) 编码”,但结果是一样的!我在哪里做错了?感谢您的帮助!
【问题讨论】:
标签: php zend-framework2 smtp gmail zend-mail