我正在尝试从mysql数据库创建一个电子邮件发送列表,如果它是正确的一天只会发送到recieptant,我想要每个人发送一个单独的电子邮件,如果它们都在,我可以做到没有问题"To: "
字段。
这是我没有的东西
<?
$freq=date("N");
//get email address's
$result = mysql_query("SELECT * FROM email_list ");
while($row = mysql_fetch_array($result))
{
if($row['period']=="daily"){
$to="To: ".$row['name']." <".$row['email'].">\r\n";
$subject="Your exchange rate update";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .="To: ".$row['name']." <".$row['email'].">\r\n";
$headers .= "From: ME <me@me.com>" . "\r\n";
mail($to, $subject, $email, $headers);
}
if($row['period']==$freq){
$to="To: ".$row['name']." <".$row['email'].">\r\n";
$subject="Your exchange rate update";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .="To: ".$row['name']." <".$row['email'].">\r\n";
$headers .= "From: name <me@me.com>" . "\r\n";
mail($to, $subject, $email, $headers);
}
}
?>
不会发送任何电子邮件,也不会收到错误消息。
答案 0 :(得分:1)
您不要将“To:”放入作为第一个参数传递给mail()
的字符串中。
答案 1 :(得分:1)
您只是从表格中选择了email
字段,但在生成邮件标题时,您要尝试同时访问$row['name']
和$row['email']
。
$row['name']
可能会提供未定义的索引警告,搞乱标题和随后的电子邮件发送。
更新:我发现您已将查询更新为select *
而不是select email
。作为提示,请不要像这样静默更新问题,请使用评论进行更新,并让相关人员知道您所做的任何更改是否根据发布的原始代码帮助/更改了行为。
当有人查看问题中发布的代码并发现所发布的答案与其完全无关时,会变得很难..
答案 2 :(得分:0)
当您选择电子邮件时,$ row数组将只包含$ row [“email”]
还尝试回显邮件功能的响应,并打开错误报告:
error_reporting(-1);
您还需要在运行此代码的系统上运行正常的邮件服务器:
答案 3 :(得分:0)
您只选择“电子邮件”。 $row['period']
为空,因为在您的查询中未选中它。因此两者都是假的,因此没有发送电子邮件。
答案 4 :(得分:0)
试试这个
<?
$freq=date("N");
//get email address's
$result = mysql_query("SELECT * FROM email_list ");
while($row = mysql_fetch_array($result))
{
if($row['period']=="daily"){
$to=$row['name']." <".$row['email'].">\r\n";
$subject="Your exchange rate update";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .="To: ".$row['name']." <".$row['email'].">\r\n";
$headers .= "From: ME <me@me.com>" . "\r\n";
mail($to, $subject, $email, $headers);
}
if($row['period']==$freq){
$to=$row['name']." <".$row['email'].">\r\n";
$subject="Your exchange rate update";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .="To: ".$row['name']." <".$row['email'].">\r\n";
$headers .= "From: name <me@me.com>" . "\r\n";
mail($to, $subject, $email, $headers);
}
}
?>