2014-09-11 115 views
1

我有我的郵件發送Zend Framework 2的三個問題。郵件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); 
+1

此代碼對我的作品。問題一定在其他地方。 '$ emailTemplate'是用utf8編碼的嗎?你有沒有轉儲'$ contactObject-> sujet'? – BreyndotEchse 2014-09-11 13:08:51

回答

2

當我刪除這個從我的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); 

感謝您的幫助,雖然。

0

對於你的問題

在ZF2主題用逗號出現了兩次。例如,如果設置了「我的 主題」,則Outlook或Gmail中的主題將爲「我的主題,我的主題 」。

使用默認的Zend郵件發送郵件時,主題標題被添加兩次。這是因爲頭文件是由PHP mail()函數設置的,並且如果服務器是Windows計算機,則不會從附加頭文件中刪除頭文件。這個問題已在問題ZF2-177中解決,但僅適用於* nix機器。

檢查這個isssue http://framework.zend.com/issues/browse/ZF2-177