我有一个我构造的PHP变量:
$msg_gifted='<body style="border:3px solid
black;padding:5rem;width:1000px;margin:auto;margin-top:30px;text-
align:center;">';
$msg_gifted.='<img src="/logo.png">';
$msg_gifted.='<h1>It is a mail </h1>';
$msg_gifted.='<p>From: ';
$msg_gifted.=$_POST["useremail"];
$msg_gifted.='</p>';
$msg_gifted.='<p>Amount: GBP';
$msg_gifted.=$_POST["amount"];
$msg_gifted.='<Some text </p>';
然后我发送这个带邮件的变量
mail($recipient_gifted,$subject_gifted,$msg_gifted,$mailheaders_gifted);
一切正常。
当我为变量添加更多人员时,由于某种原因,邮件永远不会到达
$msg_gifted='<body style="border:3px solid
black;padding:5rem;width:1000px;margin:auto;margin-top:30px;text-
align:center;">';
$msg_gifted.='<img src="/logo.png">';
$msg_gifted.='<h1>It is a mail </h1>';
$msg_gifted.='<p>From: ';
$msg_gifted.=$_POST["useremail"];
$msg_gifted.='</p>';
$msg_gifted.='<p>Amount: GBP';
$msg_gifted.=$_POST["amount"];
$msg_gifted.='<p>Some Text</p>';
$msg_gifted.='<p>';
$msg_gifted.='1000';
$msg_gifted.='</p>';
变量有限制吗?
答案 0 :(得分:2)
您应该考虑使用PHPMailer或SwiftMailer之类的内容来发送电子邮件。
很可能你的电子邮件标题出了问题。很难让它们正确,特别是在第一次使用邮件时。
另外,据我所知,没有mail()的变量限制,你已经检查了服务器错误日志吗?
问候
修改强>
我认为这是一个基于标题的错误。
我发现它与标题有关。 整个邮件头变量是:
$mailheaders_gifted = "From: " . $support_email . "\r\n";
$mailheaders_gifted .= "Reply-To: ". $support_email . "\r\n";
$mailheaders_gifted .= "MIME-Version: 1.0\r\n";
$mailheaders_gifted .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
我也尝试过:
"Content-type:text/html;charset=UTF-8" . "\r\n";
我仍然建议使用我上面提到的其中一个库。
来自PHP Docs的邮件功能可以解决问题:
注意强>:
如果未收到消息,请尝试仅使用LF(\ n)。一些Unix邮件 转移代理(最值得注意的是»qmail)取代CRLF的LF 自动(如果使用CRLF,则会导致CR加倍)。这个 应该是最后的手段,因为它不符合»RFC 2822。
答案 1 :(得分:0)
我终于设法解决了这个问题。这不是如何设置变量的问题,而是如何设置标头。 我需要编辑我的标题,如:
SELECT * FROM Employees Emp
LEFT JOIN Department Dpt ON Emp.EmployeeID= Dpt.EmployeeID
LEFT JOIN Grievance Grv ON Emp.EmployeeID= Grv.EmployeeID
WHERE EmployeeID= @EmployeeID);
然后邮件功能应该是:
$mailheaders_gifted[] = 'MIME-Version: 1.0';
$mailheaders_gifted[] = 'Content-type: text/html; charset=iso-8859-1';
$mailheaders_gifted[] = 'From: My Web Site <mymail@example.com>';