这是我的 table :
id emails names vip expire
1 1@exp.com name1 1 2015/03/25 12:10:22
2 2@exp.com name2 0
3 3@exp.com name3 1 2015/03/30 09:12:00
4 4@exp.com name4 1 2015/05/01 20:10:11
5 5@exp.com name5 1 2015/03/25 12:10:20
.
.
.
在此代码中:
调用表中的所有用户,其中仅调用拥有事件帐户的用户。
如果用户的帐户已过期,则他们的帐户将被停用并向所有用户发送电子邮件。
但不会向所有帐户为 0 或未激活的用户发送电子邮件。
活跃 = 1 | 不活跃 = 0
用户数量200万,并且每天都在增加用户。
我认为应该这样做以循环发送电子邮件。
<?php
$db = mysqli_connect($mysql_server, $mysql_username, $mysql_password);
if (!$db)
{
die('Failed to connect to database server!<br>'.mysqli_error());
}
mysqli_select_db($db, $mysql_database) or die('Failed to select database<br>'.mysqli_error());
$update = date("Y-m-d H:i:s");
$sql = "SELECT * FROM ".$mysql_table." WHERE `vip` = '1' AND `expire` <= '".$update."'";
$result = mysqli_query($db, $sql);
if ($data = mysqli_fetch_array($result))
{
$emails = $data['emails'];
$names = $data['names'];
$sql = "UPDATE `".$mysql_table."` SET `vip` = '0' WHERE `vip` = '1' AND `expire` <= '".$update."'";
mysqli_query($db, $sql);
$msg = "Hi ".$names.",\nSecond line of text";
mail($emails, "Expired Account", $msg);
}
mysqli_close($db);
?>
最佳答案
选择后,您需要一些时间为每个人发送一封电子邮件。
相反:
if ($data = mysqli_fetch_array($result))
试试这个:
while ($data = mysqli_fetch_array($result))
关于php - 基于PHP和MYSQL向多个用户发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29142614/