邮件Zend Framework 2的三个问题

时间:2014-09-11 01:05:45

标签: php encoding zend-framework2 zend-mail

我的Zend Framework 2发送的邮件有三个问题。

首先,主题以逗号出现两次。例如,如果设置为“我的主题”,则Outlook或Gmail中的主题将是“我的主题,我的主题”。为什么会这样做,我该如何解决?

之后,在我的邮件文本之前总是写着“UTF-8”。我该如何删除?

最后,我的所有口音都被“C”或“c”取代。然而,我设置了UTF-8。

我在Outlook和Gmail中测试过。对于Outlook和Gmail,所有这些错误都是相同的。

感谢。

我的代码:

use Zend\Mail\Message;
use Zend\Mime\Message as MimeMessage;
use Zend\Mime\Part as MimePart;
use Zend\Mail\Transport\Sendmail as SendmailTransport;
.
.
.

$message = new Message();   

$bodyPart = new \Zend\Mime\Message();
$bodyMessage = new \Zend\Mime\Part($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);

2 个答案:

答案 0 :(得分:2)

当我从我的emailTemplate中删除它并且“UTF-8”没有显示在我的电子邮件中,但我不知道为什么。

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

但是我没有解决另外两个问题。我创建了一个var_dump($ message-&gt; getSubject())并且它转储正确显示我的主题。

我改变了我的代码并修复了我的所有问题,但这不是ZF2

    $headers = "Content-Type: text/html; charset=\"UTF-8\"";
    mail("$courrielDestinataire","$contactObject->sujet","$emailTemplate",$headers);

感谢您的帮助。

答案 1 :(得分:0)

提出您的问题

  

在ZF2中,主题以逗号出现两次。例如,如果一组&#34;我的   主题&#34;,Outlook或Gmail中的主题将是&#34;我的主题,我的   受试者#34;

使用默认的Zend邮件程序发送电子邮件时,主题标题会添加两次。这是因为标头是由PHP mail()函数设置的,如果服务器是Windows机器,则不会从其他标头中删除标头。这是通过问题ZF2-177修复的,但仅适用于* nix机器。

检查这个问题 http://framework.zend.com/issues/browse/ZF2-177