使用php邮件功能时有限制吗?

bbt*_*ang 7 php email send

我正在使用php和mysql.

我将发送10k ++(10万多封)电子邮件来更新我的订阅者,这是我第一次发送它们.我将使用php邮件功能,基本上这里是我要做的:

首先从数据库中获取数据:

Select name, email FROM data
Run Code Online (Sandbox Code Playgroud)

之后,使用while循环发送数据:

while($r = mysql_fetch_assoc($exe)){
    ...
    if($mail){
        echo "success<br>";
    } else {
        echo "failed<br>";
    }
}
echo "Sent all";
Run Code Online (Sandbox Code Playgroud)

我包含if .. else语句,以确保每封电子邮件都成功发送.有什么我需要照顾的吗?发送给10K ++用户时会有任何问题吗?

您要发送的电子邮件数量是否有限制?

Gre*_*reg 10

请注意邮件文档中的这个说明:

注意:值得注意的是mail()函数不适合循环中的大量电子邮件.此功能为每封电子邮件打开和关闭SMTP套接字,效率不高.
要发送大量电子邮件,请参阅»PEAR :: Mail和»PEAR :: Mail_Queue包.


Pal*_*tir 5

对电子邮件号码没有限制,但PHP脚本有时间限制.请参阅php.ini中设置的max_execution_time,通常为20或30秒.如果您不知道,请使用phpinfo()找出它.

此外,您应该采取一些措施来防止用户收到太多电子邮件.您应该将它们标记为已发送,因此如果您不小心启动了两次脚本,它们就不会收到双重帖子.

除此之外,你应该注意到php的邮件功能本来就没有优化.您可以尝试一些库,如phpmimemessage或任何其他库,这将允许您进行一些缓存,例如,许多其他功能.