我使用imap php函数为smtp邮箱。当我发送包含多个附件的邮件时,任何使用imap_mail()
功能的文件都将与所有附件一起正确发送。
但是我在“已发送邮件”框中查看了所有邮件文本,但附件文件显示为文本文件 - 而不是实际文件。
我对sent imap_mail()
函数和imap_append()
函数使用相同的标头代码。为什么会发生这种意外行为?
答案 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连接的位置。