使用php邮件功能有限制吗?
我正在使用php和mysql 我将发送10k++(一万多封)电子邮件来更新我的订户,这是我第一次发送他们。我将使用php邮件功能,基本上如下所示: 首先从数据库中获取数据:使用php邮件功能有限制吗?,php,email,send,Php,Email,Send,我正在使用php和mysql 我将发送10k++(一万多封)电子邮件来更新我的订户,这是我第一次发送他们。我将使用php邮件功能,基本上如下所示: 首先从数据库中获取数据: Select name, email FROM data 之后,使用while循环发送数据: while($r = mysql_fetch_assoc($exe)){ ... if($mail){ echo "success<br>"; } else {
Select name, email FROM data
之后,使用while循环发送数据:
while($r = mysql_fetch_assoc($exe)){
...
if($mail){
echo "success<br>";
} else {
echo "failed<br>";
}
}
echo "Sent all";
while($r=mysql\u fetch\u assoc($exe)){
...
如果($邮件){
呼应“成功
”;
}否则{
回显“失败
”;
}
}
回声“发送所有”;
我包括如果。。else语句,以确保成功发送每封电子邮件。有什么我需要照顾的吗?发送给10K++用户时会有任何问题吗
您要发送的电子邮件数量是否有限制?电子邮件数量没有限制,但PHP脚本有时间限制。查看php.ini中的设置,通常为20或30秒。如果您不知道,请使用phpinfo()找到它 此外,你应该采取一些措施防止用户收到太多的电子邮件。您应该将它们标记为已发送,这样,如果您意外地启动脚本两次,它们就不会收到双重帖子
除此之外,您应该注意到php的邮件功能本质上根本没有经过优化。您可以尝试一些库,如phpmimemessage或任何其他库,这些库将允许您在许多其他功能中执行一些缓存操作。请注意以下注意事项: 注意:值得注意的是,mail()函数不适用于循环中的大量电子邮件。此函数用于打开和关闭每封电子邮件的SMTP套接字,但效率不高。
有关发送大量电子邮件的信息,请参阅»PEAR::Mail和»PEAR::Mail_队列包
您可以使用pear::Mail\u队列
这真的会做得很好。你应该建立一个发送/失败的电子邮件队列,这样你就可以尝试重新发送失败的尝试,避免在出现问题时重新发送电子邮件 不要创建尝试通过邮件发送10000封电子邮件的循环()
此外,您最有可能达到的限制是您的ISP或主机的邮件服务器 您可能还想看看如何设置一个“真正的”邮件列表工具,例如,或者至少使用别名组(如果可能的话)
另外,请参阅serverfault:上的相关问题,其中提到了其他问题。这里-。天哪,我不知道。那么,您通常使用“phpmimemessage”发送10k++电子邮件?你在使用哪个图书馆?我做了一些更复杂的事情,但是是的,我在使用这个图书馆做群发邮件(时事通讯)。Mimemessage现在已经很老了,现在有更好的库了,请参阅其他答案,或者用谷歌搜索。但是,我的脚本是从CLI在后台运行的,没有时间限制。您使用什么库发送blast电子邮件?梨:邮件??我要学习那些东西。谢谢pear::邮件队列,而不是邮件。带gmail的phpMail怎么样?它能正常工作还是有同样的问题?问题是否与执行时间限制或其他相关-