php电子邮件从mysql数据库发送列表

时间:2012-09-06 15:20:03

标签: php mysql

我正在尝试从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);
     }

}   
 ?>

不会发送任何电子邮件,也不会收到错误消息。

5 个答案:

答案 0 :(得分:1)

您不要将“To:”放入作为第一个参数传递给mail()的字符串中。

答案 1 :(得分:1)

您只是从表格中选择了email字段,但在生成邮件标题时,您要尝试同时访问$row['name']$row['email']

$row['name']可能会提供未定义的索引警告,搞乱标题和随后的电子邮件发送。

更新:我发现您已将查询更新为select *而不是select email。作为提示,请不要像这样静默更新问题,请使用评论进行更新,并让相关人员知道您所做的任何更改是否根据发布的原始代码帮助/更改了行为。

当有人查看问题中发布的代码并发现所发布的答案与其完全无关时,会变得很难..

答案 2 :(得分:0)

当您选择电子邮件时,$ row数组将只包含$ row [“email”]

还尝试回显邮件功能的响应,并打开错误报告:

error_reporting(-1);

您还需要在运行此代码的系统上运行正常的邮件服务器:

http://php.net/manual/en/function.mail.php

答案 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);
     }

}   
 ?>