2010-09-17 54 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