我编写了这个代码,用于发送电子邮件,通过按下按钮,它工作得很好,但在某些时候它随机停止而不更改它,显示对我没有意义的错误 {{ 1}} 即可。请注意,我已将No recipient addresses found in header
放在代码的末尾,以便我可以看到正在为变量设置的内容。我一无所获。空的空间。 print $to;
返回var_dump($to);
NULL
答案 0 :(得分:1)
我注意到了一些问题。首先,你循环遍历并在每次迭代中设置$ to和$ header变量,这是多余的,并且还用不必要的重复内容填充$ header变量。它也不会为每次迭代发送一封电子邮件,而是将越来越多的邮件堆积到一封电子邮件中,并且可能无法正确格式化。此外,邮件功能中的$ to参数与" To:"不同。头。这可能是一个脚本或精明的管理员抓住了这个并要求" To:"标题将出现在电子邮件中。试试这个:
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . "/common/config.php" ;
$id = $_GET['id'];
$table = $_GET['table'];
$q = mysql_query("SELECT * FROM $table WHERE loadID = '$id'");
$random_hash = md5(date('r', time()));
$to = "noreply@example.com";
$headers = "To: $to\r\n";
$headers .= "From: dispatch@eagleexpress05.com\r\nReply-To: dispatch@eagleexpress05.com";
$headers .= "\r\nContent-Type: multipart/alternative; boundary=\"PHP-alt-".$random_hash."\"";
while($f = mysql_fetch_array($q)){
$subject = 'Dispatch information on Load: '.$f['loadnumber'].' for Truck: '.$f['trucknum'];
ob_start();
?>
--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
EMAIL CONTENT GOES HERE
<?php
--PHP-alt-<?php echo $random_hash; ?>--<?php
$message = ob_get_clean();
$mail_sent = @mail( $to, $subject, $message, $headers );
}
print $to;
?>