2009-11-17 16 views
0

當名稱設置爲具有外部字符(如「å」)和逗號(「,」)的東西時,Zend Mail將引發異常(因爲mail()返回false) )。用下面的代碼重新生成。Zend Mail問題與外國字符+逗號

$mail = new Zend_Mail('utf-8'); 
$mail 
    ->setFrom('[email protected]', 'My company') 
    ->setSubject('hi') 
    ->addTo('[email protected]', 'aå,a') 
    ->setBodyHtml('<p>asd</p>') 
    ->send(); 

如果我將addTo調用更改爲下面的內容,則不會發生錯誤。

->addTo('[email protected]', 'aåa') 
->addTo('[email protected]', 'a,a') 
->addTo('[email protected]', 'aa') 

奇怪的是,儘管它拋出一個異常(「無法發送郵件」),郵件傳遞。我正在運行最新的Zend Mail(1.9.5?)。請halp!

回答

0

的問題是$該郵件()函數接受

User <[email protected]>, Another User <[email protected]> 

,我想在PHP內部分裂的逗號分隔多個收件人的字符串,但你只提供一個電子郵件地址。

如果您認爲這是一個Zend_Mail或PHP錯誤,您應該將其發佈到相應的問題跟蹤器。

0

逗號是郵件標題的「to」部分中的保留字面值(儘管如此,您應該永遠不要使用它),將不同的目標分開。即使你的「第一次」的郵件被髮送,恕我直言,它會創建這樣一個標題:

aå, a <[email protected]> 

有了這個標題我想你的MTA試圖發送兩封郵件:一個AA,它失敗(嚴重)和第二個到[email protected],這應該是它的方式。 您可以嘗試查看郵件標題以確認此理論。