2010-07-16 156 views
1

我想使用PHP mail()函数将电子邮件发送给多个收件人。电子邮件只是提醒会员即将过期,因此电子邮件地址将来自MySql数据库查询。任何时候都会有2-10的任何地方。我发现下面的代码,但它会产生错误。问题不在于我的查询,因为它会生成准确的记录集。这是我有的代码:希望有人可以提供帮助。顺便说一句,我是一个新手,所以需要简单直接的解释。在此先感谢:从MySql Recordset发送电子邮件给多个收件人

<?php 

$recipients = ("SELECT email FROM tblMembers WHERE search criteria=criteria"); 
$email_list = $db->query($recipients); 
foreach($email_list as $row) { 
$to = $row['email']; 
$subject = "Membership Renewal"; 
$headers = "From: Membership Coordinator <[email protected]>\r\n"; 
$message = "THIS IS AN AUTOMATED EMAIL. PLEASE DO NOT REPLY""\n""etc, etc, etc"; 
    if (mail($to,$subject,$headers,$message)) { 
    echo "Email was sent successfully"; 
    } else { 
    echo "Email delivery has failed!"; 
    } 
} 
?> 
+3

有什么错误? – 2010-07-16 21:03:50

+1

解析错误:语法错误,85行中的/data/9/1/42/26/1205515/user/1284694/htdocs/Members/Renewals_Due.php中的意外T_IF 行85恰好是: if(mail( $ to,$ subject,$ headers,$ message)){ – Kathy 2010-07-16 22:05:33

回答

0

据我所知,那么$头来后$消息,所以你应该更改顺序邮件(),并更加关注未来。

0

变化

$message = "THIS IS AN AUTOMATED EMAIL. PLEASE DO NOT REPLY""\n""etc, etc, etc"; 

$message = "THIS IS AN AUTOMATED EMAIL. PLEASE DO NOT REPLY\netc, etc, etc"; 

有语法错误,因为“将结束的字符串。你需要一个。来连接下一个字符串。

但你也可以让这两个“出现在这一点上,因为在双引号字符串中,PHP将用换行符替换\ n。

+0

现在我有一个新的错误。代码位于for中,以重复区域的形式显示续订列表。在页面根本无法打开之前。该错误消息出现在白页上。现在页面打开了,但页面底部有一个新错误,说“ 致命错误:调用/ data/9/1/42/26/1205515中的非对象的成员函数query()第79行上的/user/1284694/htdocs/Members/Renewals_Due.php 第79行是: $ email_list = $ db-> query($ recipients); – Kathy 2010-07-17 00:05:17

+0

当您调用$ db-> query ()? 然后你需要在$ db-> query()调用之前添加“global $ db;” 然后检查你是否已经加载了$ db类 – JochenJung 2010-07-17 07:17:48

+0

好吧,我已经检查了所有这些。在上面的代码中,我有:foreach($ email_list as $ row) – Kathy 2010-07-17 10:13:59

相关问题