PHP邮件标题

Rya*_*yan 1 php email email-headers

基本上我要做的是将文件附加到我发送的电子邮件中.很简单吧?由于某种原因,它不喜欢以下代码(可能是因为标题).有人可以帮忙吗?

提前致谢!!

$subject = "File ".date("Ymd");
$message = "NONE";
$filename = "test.csv";

$content = chunk_split(base64_encode(file_get_contents($filename)));
$uid = md5(uniqid(time()));
$name = basename($file);

$header .= "MIME-Version: 1.0\r\n";
$header .= "From: noreply@x.com\r\n";
$header .= "Reply-To: noreply@x.com\r\n";


$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: text/csv; name=\"".$filename."\"\r\n";
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$header .= $content."\r\n\r\n";
$header .= "--".$uid."\r\n";
//echo $header;

if (mail($to_email, $subject, $message, $header)) {
    echo "mail send ... OK"; 
} else {
    echo "mail send ... ERROR!";
}
Run Code Online (Sandbox Code Playgroud)

而错误:

警告: mail()[function.mail]:mail()函数参数错误,邮件未发送.

Mar*_*c B 7

请不要构建自己的MIME电子邮件.使用PHPMailerSwiftmailer,它几乎可以为您完成所有工作.您可以用大约5或6行代码替换整个脚本.

最重要的是,它们将为您提供比可疑的愚蠢mail()功能更好的错误消息/诊断.