![](/img/trans.png)
[英]Send email to all email address from MySQL using PHP
[英]PHP Send email to multiple address from SQL
我正在尝试将电子邮件发送到从SQL提取的多个地址。 我想出了以下脚本,但没有运气。 我知道使用mail()
或sendmail
并不是最好的选择,如果有人可以指出我出了错的地方,或者使用phpmailer有更好的解决方案,那将是很棒的选择。
PS:我不想使用SMTP,因为我们正在使用的地址将不受监视。 不要回答,实际上我们根本没有电子邮件服务。 但是服务器确实支持mail / sendmail / phpmailer,所有都经过测试。
<HTML>
<TITLE>Email Notification</TITLE>
<?php
include "subscribe/mySQL.class.php"; //Connect to SQL
if ($subject) {
$mailaddress = "DO-NOT-REPLY@domain.my";
$query = "select email from subscribe";
$res = mysql_query($query);
$row = mysql_fetch_array($res);
while ($row) {
mail($row['email'],$subject,$text."n ","From:".$mailaddress);
$row = mysql_fetch_array($res);
}
echo "<script type='text/javascript'>";
echo "parent.location.href='welcome.php'";
echo "</script>";}
?>
<BODY>
<P ALIGN=CENTER><FONT FACE="Arial" SIZE="7" COLOR="#FF0000">Send Notifications<BR><BR></FONT>
<P ALIGN=LEFT><FORM NAME="email" ACTION="test.php" METHOD="POST">
<FONT FACE="Arial" SIZE="6" COLOR="#0000FF">Subject:<INPUT TYPE=TEXT NAME="subject" SIZE="50" MAXLENGTH="18" value=<?php echo $subject ?>><BR><BR>
Content: <TEXTAREA NAME="text" COLS="90" ROWS="3" value="<?php echo $text?>"> </TEXTAREA><BR><BR>
</FONT>
<INPUT TYPE=SUBMIT VALUE=Send Email></FORM>
</BODY>
</HTML>
您什么也看不到,因为您没有打印任何内容来帮助您查看电子邮件已发送。
尝试使用: mysql_fetch_assoc()而不是mysql_fetch_array(),看看它如何为您工作。
//Sorry, but I am a fan of mysql_fetch_assoc
//$row = mysql_fetch_array($res);
while ($row = mysql_fetch_assoc($res)) { //Here is my main change
if (mail($row['email'],$subject,$text."n ","From:".$mailaddress)) {
echo '<hr>Message sent to: '.$row['email'].'<br>'; //Just to see that it was sent.
}
//$row = mysql_fetch_array($res); //Since I put this in the while test
}
mail()
函数返回一个布尔值,因此测试该值并打印一些内容,以便您可以知道是否成功发送了邮件。
如果这不是问题,请告诉我,这样我可以删除此答案或进行相应的编辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.