Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP mail在邮件中发送带有冒号的电子邮件不会发送邮件_Php_Email_Attachment_Colon - Fatal编程技术网

PHP mail在邮件中发送带有冒号的电子邮件不会发送邮件

PHP mail在邮件中发送带有冒号的电子邮件不会发送邮件,php,email,attachment,colon,Php,Email,Attachment,Colon,我试图发送一封带有附件的电子邮件,以前一切都很好。但后来我们换了服务器,现在它不再工作了,所以我开始调试。我得出的结论是,如果邮件包含冒号,则发送的电子邮件中不会包含该邮件 当我删除冒号时,电子邮件会发送包括消息在内的所有内容 谁能告诉我冒号是如何中断正在发送的消息的 这是我当前的代码: $from_name = "From name"; $from_mail = "inbox@inbox.nl"; $replyto = "no-reply@email.nl"; $message = "This

我试图发送一封带有附件的电子邮件,以前一切都很好。但后来我们换了服务器,现在它不再工作了,所以我开始调试。我得出的结论是,如果邮件包含冒号,则发送的电子邮件中不会包含该邮件

当我删除冒号时,电子邮件会发送包括消息在内的所有内容

谁能告诉我冒号是如何中断正在发送的消息的

这是我当前的代码:

$from_name = "From name";
$from_mail = "inbox@inbox.nl";
$replyto = "no-reply@email.nl";
$message = "This is a: test";
$content = "This is the content";
$subject = "Test";
$mailto = "receiver@provider.nl";
$bijlage_naam = "test.xml";
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$name = basename($file);
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "Reply-To: ".$replyto."\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 .= "--".$uid."\r\n";
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n";
//$header .= $message."\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/octet-stream;         name=\"$bijlage_naam\"\r\n"; // use different content types here
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment;         filename=\"$bijlage_naam\"\r\n";
$header .= $content."\r\n\r\n";
//$header .= "--".$uid."--";
if (mail($mailto, $subject, $message, $header)) {
    return 1;
} else {
    return 0;
}
$from_name=“from name”;
$from_mail=”inbox@inbox.nl";
$replyto=“否-reply@email.nl";
$message=“这是一个:测试”;
$content=“这是内容”;
$subject=“Test”;
$mailto=”receiver@provider.nl";
$bijlage_naam=“test.xml”;
$content=chunk_split(base64_encode($content));
$uid=md5(uniqid(time());
$name=basename($file);
$header=“From:”.$From\u name.\r\n”;
$header.=“回复:”.$replyto.\r\n”;
$header.=“MIME版本:1.0\r\n”;
$header.=“内容类型:多部分/混合;边界=\”.$uid.\“\r\n”;
$header.=“这是MIME格式的多部分消息。\r\n”;
$header.=“-”$uid.\r\n”;
$header.=“内容类型:文本/普通;字符集=iso-8859-1\r\n”;
$header.=“内容传输编码:7bit\r\n”;
//$header.=$message.“\r\n”;
$header.=“-”$uid.\r\n”;
$header.=“内容类型:应用程序/八位字节流;名称=\”$bijlage\u naam\“\r\n”;//在这里使用不同的内容类型
$header.=“内容传输编码:base64\r\n”;
$header.=“内容处置:附件;文件名=\”$bijlage\u naam\“\r\n”;
$header.=$content.“\r\n\r\n”;
//$header.=“--”$uid.--”;
if(邮件($mailto,$subject,$message,$header)){
返回1;
}否则{
返回0;
}

我不确定冒号是否会影响您发送电子邮件

但如果你把你的信息放在标题里

$header .= $message; //I found it in your code
可能会出现问题,因为header使用
来定义某些内容

我建议您使用
\
拆分这些冒号。有一个简单的PHP函数可以做到这一点:

$header .= str_replace(":", "\:", $message).

您可以查看是否能够再次发送电子邮件。

我不确定冒号是否会影响您发送电子邮件

但如果你把你的信息放在标题里

$header .= $message; //I found it in your code
可能会出现问题,因为header使用
来定义某些内容

我建议您使用
\
拆分这些冒号。有一个简单的PHP函数可以做到这一点:

$header .= str_replace(":", "\:", $message).


您可以查看是否可以再次发送邮件。

您不应该将邮件放在标题中,而应该放在appropiate
$message
参数中…

您不应该将邮件放在标题中,而应该放在appropiate
$message
参数中…

因为更改服务器后,事情开始失败,你确定服务器没有任何问题吗?@tcak不,我不这么认为,因为我可以在没有任何问题的情况下发送邮件colon@user3734231,我从3天以来一直面临这个问题,不知道为什么不发送电子邮件,没有收到错误,从主题中删除冒号修复了这个问题,所以我建议你摆脱它,我没有解释为什么,但我在某个地方读到,主题不应该包含任何特殊字符,所以我猜冒号是导致邮件服务器上的解析错误的原因,但不知怎的,它并没有作为错误返回。仅供参考:事实证明,破折号字符也会导致相同的问题。因为在您更改服务器后,事情开始出现故障,您确定服务器没有任何问题吗?@tcak不,我不这样认为,因为我可以在没有破折号的情况下发送邮件colon@user3734231,3天以来我一直面临这个问题,不知道为什么不发送电子邮件,没有收到错误,从主题中删除冒号修复了这个问题,所以我建议你摆脱它,我没有解释为什么,但我在某个地方读到,主题不应包含任何特殊字符,因此,我猜测冒号是导致邮件服务器出现解析错误的原因,但不知何故,它没有作为错误返回。仅供参考:原来破折号字符也会导致相同的问题。感谢您的快速响应,我已尝试在:之前放置\,但它仍然无法发送。我还尝试从邮件头中删除邮件,并将其直接放入mail函数中。但是它仍然不会发送带有:,当我删除:,它会发送。还有其他建议吗?您的脚本是否返回1?可能您的新服务器不允许您通过php mail()发送电子邮件,因为如果存在垃圾邮件,这将导致服务器从RBL站点被列入黑名单。因此,另一个建议是在另一台服务器上重试,看看是否可以发送。如果可以的话,这意味着你应该更换另一台服务器。不,这不是因为我已经在我的帖子里写了,当没有“:”时,我可以用邮件发送电子邮件。所以应该是seomthing Elsethan感谢您的快速响应,我已经尝试在:之前放置一个\但仍然没有发送。我还尝试从邮件头中删除邮件,并将其直接放入mail函数中。但是它仍然不会发送带有:,当我删除:,它会发送。还有其他建议吗?您的脚本是否返回1?可能您的新服务器不允许您通过php mail()发送电子邮件,因为如果存在垃圾邮件,这将导致服务器从RBL站点被列入黑名单。因此,另一个建议是在另一台服务器上重试,看看是否可以发送。如果可以的话,这意味着你应该更换另一台服务器。不,这不是因为我已经在我的帖子里写了,当没有“:”时,我可以用邮件发送电子邮件。所以它应该是seomthing,因为我已经更改了消息的位置,我现在在邮件功能中发送它,不再在邮件头中发送,但它仍然不起作用。还有其他建议吗?@user3734231我建议删除所有花哨的标题和附件,尝试发送一个a