Я пытаюсь отправить электронное письмо с приложением, раньше все работало нормально. Но потом мы поменяли серверы, и теперь он больше не работает, поэтому я начал отладку. И я пришел к выводу, что если сообщение содержит двоеточие сообщение не будет включено в отправляемое письмо.
Когда я удаляю двоеточие, электронное письмо отправляет все, включая сообщение.
Может кто-нибудь сказать мне, как двоеточие может прервать отправку сообщения?
Это мой текущий код:
$from_name = "From name";
$from_mail = "[email protected]";
$replyto = "[email protected]";
$message = "This is a: test";
$content = "This is the content";
$subject = "Test";
$mailto = "[email protected]";
$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;
}
Я не уверен, повлияет ли двоеточие на вас, отправив электронное письмо или нет.
Но если вы поместите свое сообщение в шапку
$header .= $message; //I found it in your code
Там будет проблема, потому что заголовок использует :
определить что-то.
То, что я могу порекомендовать вам сделать, это разделить эти двоеточия с \
, Существует простая функция PHP, которая может сделать это:
$header .= str_replace(":", "\:", $message).
Вы можете увидеть, если вы можете отправить его снова или нет.
Вы не должны помещать свое сообщение в заголовок, но в соответствующий $message
параметр …