-3

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

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

4

2 回答 2

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,因为使用 mail() 发送的邮件被放入垃圾邮件文件夹中,其中包含 GMail 等最流行的邮件提供商。 mailer 类还提供了更广泛的数量可调节的功能,特别是用于调节。

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

另请查看 StackOverflow 上的特定答案:
https ://stackoverflow.com/a/4671714/2493918

祝你好运!

于 2013-08-08T13:21:32.433 回答
0

谢谢你,但在这个链接https://stackoverflow.com/a/4671714/2493918我看到了 Swift_Connection_SMTP(MAIL_SMTP_URL, MAIL_SMTP_PORT) 函数。但我不明白我在哪里将电子邮件 ID 和密码放入此函数参数中以进行 smtp 连接。

于 2013-08-09T06:15:54.090 回答