这是我的第一个问题,我希望有人可以帮我解决我的问题。 =(=(=(
我想使用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收到邮件中没有文件的电子邮件。
私人邮件服务器接收没有附件的电子邮件,只收到一个巨大的字符串。
如何修改此代码以发送附件,并且所有邮件服务器都成功收到电子邮件?
谢谢,最好的问候!
答案 0 :(得分:1)
你试过用过吗...... 内容类型:text / html; charset =“iso-8859-1”
而不是...... 内容类型:文本/无格式;字符集= UTF-8
已经有一段时间了,因为我搞乱了PHP和邮件,但我更喜欢使用一个已经找出很多这些问题的库...一个经典的存在: https://github.com/PHPMailer/PHPMailer 要么 http://swiftmailer.org/