Zend Framework 2发送的邮件有三个问题。
首先,主题用逗号出现两次。例如,如果设置了"我的主题",Outlook或Gmail中的主题将是"我的主体,我的主体"。为什么会这样?我该如何解决?
在那之后,我的邮件文本前面总是写着一个"UTF-8"。我该如何删除它?
最后,我所有的口音都被"C)或)C"取代了。然而,我设置了UTF-8。
我在Outlook和Gmail中进行了测试。所有这些错误在Outlook和Gmail中都是相同的。
谢谢。
我的代码:
use ZendMailMessage;
use ZendMimeMessage as MimeMessage;
use ZendMimePart as MimePart;
use ZendMailTransportSendmail as SendmailTransport;
.
.
.
$message = new Message();
$bodyPart = new ZendMimeMessage();
$bodyMessage = new ZendMimePart($emailTemplate);
$bodyMessage->type = 'text/html';
$bodyPart->setParts(array($bodyMessage));
$message->setEncoding("UTF-8")
->addFrom("$from")
->addTo("$courrielDestinataire")
->setSubject($contactObject->sujet)
->setBody($bodyPart);
$transport = new SendmailTransport();
$transport->send($message);
当我从我的emailTemplate中删除它时,«UTF-8»没有显示在我的电子邮件中,但我不知道为什么。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
然而,我没有解决另外两个问题。我制作了一个var_dump($message->getSubject()),它会正确地转储显示我的主题。
我为此更改了代码并修复了所有问题,但它不是ZF2
$headers = "Content-Type: text/html; charset="UTF-8"";
mail("$courrielDestinataire","$contactObject->sujet","$emailTemplate",$headers);
谢谢你的帮助。
对于您的问题
在ZF2中,主题用逗号出现两次。例如,如果主题",Outlook或Gmail中的主题将是"我的主题,我的主题"。
使用默认的Zend mailer发送电子邮件时,会添加两次主题标头。这是因为标头是由PHP mail()函数设置的,如果服务器是Windows机器,则不会从附加标头中删除。ZF2-177问题解决了这一问题,但仅适用于*nix机器。
检查这个issuehttp://framework.zend.com/issues/browse/ZF2-177