2010-09-17 57 views
1

我試圖通過Zend Framework(1.10.7)郵件庫發送文件。無法使用Zend Framework向Gmail和Lotus Notes發送附件

$mail = new Zend_Mail(); 
$mail->setSubject('Test'); 
$mail->setFrom('[email protected]'); 
$mail->setBodyText (""); 

$at = $mail->createAttachment($txtFile->toString(), 
           'text/plain', 
           Zend_Mime::DISPOSITION_ATTACHMENT, 
           Zend_Mime::ENCODING_8BIT); 
$mail->addTo ("[email protected]");        
$mail->send(); 

該文件是一個簡單的文本文件。 它與Outllok協同工作,我收到了正確的附件,但沒有收到Gmail和Lotus Notes。

使用Gmail我有這樣的消息:

這是MIME格式的消息。如果你看到這個,你的郵件閱讀器不支持這種格式。

Lotus Notes中這樣說:

這個項目的MIME內容存儲在attchment $ RFC822.eml。解析MIME內容失敗:MIME數據格式不正確:

Zend的郵件附件有什麼問題?

回答

0

顯然,這是我們的反垃圾郵件軟件,與電子郵件的標題(在輸出)混淆。

0

docs表示第一個參數應該是正在發送的二進制數據串。

一些評論建議使用file_get_contents()發送圖像,這當然確實會返回一個字符串,但它是一串代表圖像的二進制數據。

您的toString()方法返回$txtFile?一個簡單的字符串,如

return "This is some plain text"; 

還是會返回二進制數據?

您可能想嘗試創建一個包含某些內容的純文本文件,然後在該文件上使用file_get_contents()並使用返回值作爲發送附件的第一個參數,而不僅僅是發送一個純字符串。

希望有所幫助。

+0

$ txtFile-> toString()返回一個字符串,它適用於Outlook。我在Outlook中附加了一個文件。 – kevin 2010-09-21 07:48:42

+0

無論如何,你有沒有嘗試過我的file_get_contents方法? Outlook是微軟的特例,這使得它成爲一個糟糕的測試/基準測試。請記住,Outlook中的笑臉是所有其他郵件客戶端上的J。隨着行爲的你可以發送任何東西,它可能會接受/呈現它! – 2010-09-21 07:54:22

+0

我與file_get_contents有相同的結果 – kevin 2010-09-21 12:00:06