Php 邮件标题显示在邮件正文中,没有文件,没有html

Php 邮件标题显示在邮件正文中,没有文件,没有html,php,email,header,Php,Email,Header,我在处理带有附件的电子邮件时遇到问题。 标题,包括html(解析为文本)和文件(也解析为文本),都在标题中,显示为消息正文。这段代码过去是有效的,但我不知道发生了什么变化 有一个随机因素,有时邮件确实正确到达,但我似乎无法找出破坏邮件/使其正常工作的模式(假设存在) 这是我生成邮件的代码: $file = $path.$filename; $file_size = filesize($file); $handle = fopen($file, "r"); $content = fread($ha

我在处理带有附件的电子邮件时遇到问题。 标题,包括html(解析为文本)和文件(也解析为文本),都在标题中,显示为消息正文。这段代码过去是有效的,但我不知道发生了什么变化

有一个随机因素,有时邮件确实正确到达,但我似乎无法找出破坏邮件/使其正常工作的模式(假设存在)

这是我生成邮件的代码:

$file = $path.$filename;
$file_size = filesize($file);
$handle = fopen($file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$name = basename($file);
$header .= "MIME-Version: 1.0\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/html; charset=utf-8\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; 
// use different content types here
$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."--";
$mailto = 'yanivshimony@gmail.com';
if (mail($mailto, $subject, "", $header)) {

    echo "1"; // or use booleans here
} else {
    echo "mail send ... ERROR!";
}
我尝试删除所有标题,但只剩下以下标题使其正常工作:

$header .= "Content-Type: text/html; charset=utf-8\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
因此,它的用途非常少,因为它只是一封普通的html电子邮件,没有多部分/附件/任何东西-但html是经过解析的:)

知道什么会打破标题吗??
谢谢

标题显示变量
$header
以内容
--38fd5b8f9b812b5db3ec89cd01b6bd9c
开头,该内容不正确。。。标题不应该以边界开始,而应该以正文开始(因此第一个条目应该是
MIME版本:1.0
)。很难说这是在哪里发生的,特别是考虑到您删除了我添加的代码格式修复程序,但切换了行:

$header.= "MIME-Version: 1.0\r\n";
致:


应该阻止以前对
$header
的任何定义潜入其中。

好的,现在这让人尴尬。。。但你是对的:)。我试图添加$headers='';。我试着做不成(头),他们都不工作,所以我甚至没有考虑删除。非常感谢,它确实起了作用-我从中删除了“.”,现在一切都好了。我再也不会低估这一点了。再一次。。。
$header= "MIME-Version: 1.0\r\n";