为什么我不应该使用PHP的mail()函数?
在PHP中发送电子邮件时,一般的意见是远离PHP的内置功能,而是使用库。mail()
我想知道的是使用库或扩展的实际原因和缺陷。例如,标准调用中未包含的常用指定标头。mail()
mail()
在PHP中发送电子邮件时,一般的意见是远离PHP的内置功能,而是使用库。mail()
我想知道的是使用库或扩展的实际原因和缺陷。例如,标准调用中未包含的常用指定标头。mail()
mail()
引用:
PHP 函数的缺点
mail()
在某些情况下,通过PHP发送的邮件没有收到收件人,尽管它是由WB发送的,没有任何错误消息。下面列出了导致该问题的最常见原因。
mail()
- 邮件头或内容的格式错误(例如,Windows/Unix之间的换行符差异)
- 您的服务器上未安装或配置 sendmail (php.ini)
- recipeint的邮件提供商不允许通过PHP发送邮件;常见的垃圾邮件防护
mail()
标题或内容格式的错误可能导致邮件被视为垃圾邮件。在最好的情况下,此类邮件将传输到收件人收件箱的垃圾邮件文件夹或发送回发件人。在最坏的情况下,此类邮件将被删除而没有任何评论。如果未安装或未配置 sendmail,则根本无法发送任何邮件。
免费邮件提供商(如GMX)的常见做法是拒绝通过PHP函数发送的邮件。通常,此类邮件在没有任何收件人信息的情况下被删除。
mail()
PHP据说会乱码头,运行缓慢。我不能从个人经验中这样说,因为我从未使用过它,因为像你一样,我一直被建议不要使用它。如果你看一下PHP手册中mail()
条目的评论,你可以看到人们遇到的一些问题(特别是标题)。mail()
它绝对不适合发送任何大量电子邮件,因为根据手册本身,
值得注意的是,mail() 函数不适合循环中较大的电子邮件量。此函数为每个电子邮件打开和关闭一个 SMTP 套接字,这不是很有效。
有关发送大量电子邮件的信息,请参阅 » PEAR::Mail 和 » PEAR::Mail_Queue 包。
AFAIK,无论您发送的邮件数量如何,为您发送的每封邮件打开和关闭套接字(性能方面)从来都不是可取的。
基本上,这是一个工作正常的功能,但不是很好,并且被许多更好的库所掩盖。