是否有限制使用PHP邮件功能是什么时候?(Is there a limit when using p

2019-07-21 17:25发布

我使用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 ++用户时,有什么问题吗?

有电子邮件的数字,你要派出有限制吗?

Answer 1:

请注意在此说明的邮件文件 :

注:值得注意的是,邮件()函数不适合在一个循环的电子邮件的卷 。 此功能打开和关闭每个电子邮件,这是不是很有效的SMTP插座。
对于大量电子邮件的发送,见»PEAR :: Mail和»PEAR :: Mail_Queue包。



Answer 2:

没有限制的邮件数,但PHP脚本的时间限制。 见的max_execution_time在php.ini中设置,通常是20或30秒。 如果你不知道,用phpinfo()来找到它。

此外,你应该采取一些措施来避免用户得到太多的电子邮件。 你应该将它们标记为发送,这样他们就不会获得双倍的帖子,如果你不小心启动脚本的两倍。

除此之外,你应该注意到,PHP的邮件功能本质上是不是在所有优化。 你可以尝试一些图书馆,像phpmimemessage或任何其他,这将允许你做一些缓存,例如,许多其他特征。



Answer 3:

您应该建立发送/电子邮件失败的队列,所以你可以尝试重新发送失败的尝试,从而避免重复发送电子邮件,如果事情应该出问题。

不要创建尝试通过邮件发送电子邮件10K的循环()

此外,您会打的最有可能的限制将是你的ISP或主机的邮件服务器。



Answer 4:

你也可以想看看建立一个“真正”的邮件列表的工具,如邮递员 ,或至少使用别名组(如果可能)。

此外,看到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 。



Answer 5:

您可以使用PEAR :: Mail_Queue http://pear.php.net/package/Mail_Queue/

这将真正做好。



文章来源: Is there a limit when using php mail function?
标签: php email send