我使用PHP和MySQL。
我要送10K ++(万加)电子邮件更新我的用户,这是第一次,我要送他们。 我将使用PHP的邮件功能,基本上这里是我会做:
首先从数据库中的数据:
Select name, email FROM data
在此之后,使用while循环发送的数据:
while($r = mysql_fetch_assoc($exe)){
...
if($mail){
echo "success<br>";
} else {
echo "failed<br>";
}
}
echo "Sent all";
我包括如果.. else语句,以确保每封电子邮件成功发送。 请问有什么需要照顾? 我将在发送至10K ++用户时,有什么问题吗?
有电子邮件的数字,你要派出有限制吗?
请注意在此说明的邮件文件 :
注:值得注意的是,邮件()函数不适合在一个循环的电子邮件的卷 。 此功能打开和关闭每个电子邮件,这是不是很有效的SMTP插座。
对于大量电子邮件的发送,见»PEAR :: Mail和»PEAR :: Mail_Queue包。
没有限制的邮件数,但PHP脚本的时间限制。 见的max_execution_time在php.ini中设置,通常是20或30秒。 如果你不知道,用phpinfo()来找到它。
此外,你应该采取一些措施来避免用户得到太多的电子邮件。 你应该将它们标记为发送,这样他们就不会获得双倍的帖子,如果你不小心启动脚本的两倍。
除此之外,你应该注意到,PHP的邮件功能本质上是不是在所有优化。 你可以尝试一些图书馆,像phpmimemessage或任何其他,这将允许你做一些缓存,例如,许多其他特征。
您应该建立发送/电子邮件失败的队列,所以你可以尝试重新发送失败的尝试,从而避免重复发送电子邮件,如果事情应该出问题。
不要创建尝试通过邮件发送电子邮件10K的循环()
此外,您会打的最有可能的限制将是你的ISP或主机的邮件服务器。
你也可以想看看建立一个“真正”的邮件列表的工具,如邮递员 ,或至少使用别名组(如果可能)。
此外,看到serverfault相关的问题: https://serverfault.com/questions/67154/sending-an-email-to-about-10k-users-not-spam ,其中PHPlist提到,与人相处。 在这里- https://serverfault.com/questions/68357/whats-the-best-way-to-send-bulk-email 。
您可以使用PEAR :: Mail_Queue http://pear.php.net/package/Mail_Queue/
这将真正做好。