服务器邮件不会使用headers mail()php成功接收带附件的电子邮件

时间:2014-07-08 19:19:08

标签: php email

这是我的第一个问题,我希望有人可以帮我解决我的问题。 =(=(=(

我想使用mail()php发送带有zip附件的电子邮件。

我有这段代码:

$file = $path.$filename;
$content = chunk_split(base64_encode(file_get_contents($file)));
$uid= md5(uniqid(time()));
$bound="--".$uid."\r\n";
$last_bound="--".$uid."--\r\n";
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "MIME-Version: 1.0"."\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= $bound;
$header .= "Content-type:text/plain; charset=utf-8\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n";
$body .= $message."\r\n";
$body .= $bound;
$body .= "Content-Type: application/zip; name=\"".$file."\"\r\n";
$body .= "Content-Transfer-Encoding: base64\r\n";
$body .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n";
$body .= $content."\r\n";
$body .= $last_bound;

mail($mailto, $subject, $body, $header)

结果是:

Gmail会收到包含zip内文件的电子邮件。

Hotmail收到邮件中没有文件的电子邮件。

私人邮件服务器接收没有附件的电子邮件,只收到一个巨大的字符串。

如何修改此代码以发送附件,并且所有邮件服务器都成功收到电子邮件?

谢谢,最好的问候!

1 个答案:

答案 0 :(得分:1)

你试过用过吗...... 内容类型:text / html; charset =“iso-8859-1”

而不是...... 内容类型:文本/无格式;字符集= UTF-8

已经有一段时间了,因为我搞乱了PHP和邮件,但我更喜欢使用一个已经找出很多这些问题的库...一个经典的存在: https://github.com/PHPMailer/PHPMailer 要么 http://swiftmailer.org/