为什么这个PHP邮件脚本要HTML&附件不起作用?

时间:2012-10-04 21:40:53

标签: php html email sendmail email-attachments

  

可能重复:
  How to send email with attachment using PHP?
  PHP mail() attachment problems

我正在尝试实现此脚本: Send PHP HTML mail with attachments

我在脚本中修改的唯一内容是发送地址和文件。我正在尝试附加.mp3文件而不是.zip文件 - 也许这就是我得到意外结果的原因?

.mp3文件只有31kb

但是当我收到电子邮件时,邮件中没有附件也没有HTML格式。

电子邮件信息包含:

--PHP-mixed-a80d597fc7c02e67ff5be867c7a48bab
Content-Type: multipart/alternative; boundary="PHP-alt-a80d597fc7c02e67ff5be867c7a48bab"

--PHP-alt-a80d597fc7c02e67ff5be867c7a48bab
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Hello World!!!
This is simple text email message.

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

<h2>Hello World!</h2>
<p>This is something with <b>HTML</b> formatting.</p>

--PHP-alt-a80d597fc7c02e67ff5be867c7a48bab--

--PHP-mixed-a80d597fc7c02e67ff5be867c7a48bab
Content-Type: application/zip; name="attachment.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment

SUQzAwAAAAABIVRQRTEAAAAfAAAB//5DAGgAZQBlAHMAZQBDA.....

1 个答案:

答案 0 :(得分:0)

我在你的邮件中看到这一行:

内容类型:application / zip;名称= “attachment.zip”

您正在附加一个mp3文件,因此您的内容类型应为audio / mpeg3,文件名应根据您发送的内容而定。

Content-Type:audio / mpeg3;名称= “somefile.mp3”

另外 - 注意64位编码。您必须对mp3进行编码才能发送邮件,因为如果不这样做,您将再次获得意外结果。