提问人:raphie 提问时间:7/25/2011 更新时间:7/26/2011 访问量:6212
mail() 函数的限制
Limits for mail() function
问:
有谁知道 mail() 函数中限制了多少封电子邮件?我只是想知道,因为我的 localhost 服务器只允许我通过密件抄送发送一封电子邮件,并通过 TO 发送一封电子邮件。因此,我根据此限制来构建生产服务器,但我的问题是,如果允许电子邮件有限制,它是哪个数字,或者这是否取决于服务器配置或PHP配置?我的两台服务器都是Apache。
我一直在寻找这个答案,但没有成功。有人知道这个答案吗?
我所知道的是,除非我们有电子邮件列表,否则电子邮件服务限制为每天 100 封。但是PHP能够发送这么多电子邮件吗?
也知道最好使用此函数的 Perl 扩展来批量发送电子邮件,但到我最后,我对批量电子邮件不感兴趣,只对通过内部网络向一定数量的员工发送足够电子邮件的能力感兴趣。
例如,如果在系统中创建了一个订单,那么与该订单有联系的所有部门都应该收到一封电子邮件。ex programmi[email protected]、[email protected] 和 [email protected]。
答:
密件抄送和抄送在标头中传递。 这意味着它们以文本形式传递,您的 SMTP 服务器会尝试充分利用它。
所以我认为唯一的限制是你的SMTP服务器
PHP 没有任意限制。如果您尝试在单个密件抄送标头中发送一封包含 1000 个地址的电子邮件,那么在遇到 PHP 问题之前,您的邮件服务器会遇到问题。简单的替代方法是发送 1000 封电子邮件,每封电子邮件有一个收件人。
评论
PHP本身完全有能力每天发送数百万封电子邮件。脚本语言并不重要:无论你使用的是PHP、Perl还是Ruby,都应该没有太大的区别,限制因素将是你的邮件服务器,也许还有网络吞吐量(应该不会像你说你不做群发电子邮件那样对你产生太大影响)。直接回答你的问题 - 不 - PHP不会对你可以发送的电子邮件数量设置限制。另外 - 服务器与 emais 无关, - 所以这也不会限制你。
我可以马上告诉你:如果你只能添加 1 个 To 地址和 1 个 BCC 地址 - 问题要么出在你的 MTA 或电子邮件中,要么出在 PHP mail() 中,要么出在 PHP mail() 中。
你的密件抄送正确吗?,应该看起来像这样:
Bcc: [email protected], [email protected]\r\n
或
Bcc: User <[email protected]>, Another User <[email protected]>\r\n
AFAik,在 Windows 上,您只能这样做:
Bcc: [email protected], [email protected]
此外 - SMTP RFC (RFC 5321) 对密件抄送字段长度没有任何限制,尽管某些 ISP 可能会故意限制它以防止垃圾邮件。
p.S> 对于大型邮件列表 - 请查看:PHPmailer、swiftmailer Zend_Mail。
评论