使用imap函数向已发送邮件添加附件

时间:2013-08-08 13:08:35

标签: php email-attachments

我使用imap php函数为smtp邮箱。当我发送包含多个附件的邮件时,任何使用imap_mail()功能的文件都将与所有附件一起正确发送。 但是我在“已发送邮件”框中查看了所有邮件文本,但附件文件显示为文本文件 - 而不是实际文件。

我对sent imap_mail()函数和imap_append()函数使用相同的标头代码。为什么会发生这种意外行为?

2 个答案:

答案 0 :(得分:1)

这可能是编码问题。

您可以通过邮件发送几个部分。

例如:

身体部位:

"Content-Type: text/html; charset="iso-8859-1"
"Content-Transfer-Encoding: 7bit"
...  


附件部分(例如jpeg图像):

"Content-Type: image/jpg; name="attachment_1.jpg"
"Content-Transfer-Encoding: base64"
"Content-disposition: attachment; file="attachment_1.jpg"

chunk_split(base64_encode($file)) // PHP function to base64 encode the file
...

那里有很多教程。只需谷歌他们,并选择一个适合您的经验水平。


此外,我建议您开始使用SwiftMailer而不是PHP的本机邮件 ,因为使用mail()发送的邮件会被放入垃圾邮件中与GMail等最受欢迎的邮件提供商的文件夹。邮件程序类还提供更广泛的可调节功能,尤其适用于调整。


在这里查看文档:
http://swiftmailer.org/docs/messages.html#attaching-files

另请参阅StackOverflow上的具体答案:
https://stackoverflow.com/a/4671714/2493918

祝你好运!

答案 1 :(得分:0)

感谢您的支持,但在此链接中https://stackoverflow.com/a/4671714/2493918我看到了Swift_Connection_SMTP(MAIL_SMTP_URL,MAIL_SMTP_PORT)函数。但我不明白我把电子邮件ID和密码放在这个函数paremeter for smtp连接的位置。