我将 imap php 函数用于 smtp 邮箱。当我发送带有多个附件的邮件时,任何使用imap_mail()
功能的文件都将与所有附件一起正确发送。但是我在“已发送邮件”框中查看它,所有邮件文本都显示,但附件文件显示为文本文件 - 而不是实际文件。
sent imap_mail()
我对函数和函数使用相同的头代码imap_append()
。为什么会发生这种意外行为?
我将 imap php 函数用于 smtp 邮箱。当我发送带有多个附件的邮件时,任何使用imap_mail()
功能的文件都将与所有附件一起正确发送。但是我在“已发送邮件”框中查看它,所有邮件文本都显示,但附件文件显示为文本文件 - 而不是实际文件。
sent imap_mail()
我对函数和函数使用相同的头代码imap_append()
。为什么会发生这种意外行为?
这很可能是编码问题。
您可以通过邮件发送几个部分。
身体部位:
"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,因为使用 mail() 发送的邮件被放入垃圾邮件文件夹中,其中包含 GMail 等最流行的邮件提供商。 mailer 类还提供了更广泛的数量可调节的功能,特别是用于调节。
在这里查看文档:http:
//swiftmailer.org/docs/messages.html#attaching-files
另请查看 StackOverflow 上的特定答案:
https ://stackoverflow.com/a/4671714/2493918
祝你好运!
谢谢你,但在这个链接https://stackoverflow.com/a/4671714/2493918我看到了 Swift_Connection_SMTP(MAIL_SMTP_URL, MAIL_SMTP_PORT) 函数。但我不明白我在哪里将电子邮件 ID 和密码放入此函数参数中以进行 smtp 连接。