默认情况下PHP mail()使用什么SMTP服务器,有更好的选择吗?

joh*_*ack 10 php email

我用GoDaddy托管我的网站,我现在使用PHP mail()函数从我的网站发送表单邮件.GoDaddy每天为表单邮件提供1000个SMTP中继限制,但是他们发誓我的PHP脚本不应该触及它.

  1. 由于mail()不接受SMTP信息,它是否只是自动使用GoDaddy(或您可能在的任何托管)?

  2. 如果我的网站预计每天发送超过1000封电子邮件(单独的实例,而不是循环),我应该使用不同的方法,还是mail()正确的选择?

Sil*_*rom 12

Php默认使用本地邮件服务器.但是,您可以在php.ini配置文件中指定它.

如果您希望发送更多电子邮件,您可能需要查找另一个服务器来发送邮件或替代托管


Sur*_*shi 7

不要使用php的mail()函数,它会将你的邮件发送到垃圾邮件.而是使用SMTP php邮件程序功能.

为什么我们应该使用SMTP代替PHP mail():

SMTP登录到邮件服务器上的实际帐户,并通过SMTP将邮件发送到另一个邮件服务器.如果邮件服务器配置正确,您的邮件将从邮件服务器上的实际帐户发送,并且不会被标记为垃圾邮件.

邮件与mail()函数发送的和sendmail在大多数情况下发送.没有进行身份验证,如果您在额外标头中使用"发件人:",它几乎总是被标记为垃圾邮件.

这是因为如果您查看原始电子邮件文件,例如gmail,您将看到发送的标头.您实际上是从user@serverhostname.tld发送的,而不是像您告诉邮件功能那样的someone@example.com.如果您使用SMTP并查看原始邮件,则电子邮件实际上是从someone@example.com发送的

您可以从以下位置下载SMTP类:

  1. https://code.google.com/a/apache-extras.org/p/phpmailer/source/browse/trunk/class.smtp.php?r=170
  2. http://www.phpclasses.org/package/14-PHP-Sends-e-mail-messages-via-SMTP-protocol.html


Dar*_*ein 5

在*nix机器上,PHP mail()函数不支持SMTP,而是使用服务器上的sendmail()或其他配置的邮件脚本.此脚本可以通过SMTP发送,但这不是PHP中最简单的方法(除非您已经拥有该脚本).要使用SMTP,我建议使用PHPMailer.我已经使用它几年了,并留下了深刻的印象.它支持SMTP以及许多其他协议,还具有其他有用的功能,例如为HTML电子邮件添加纯文本正文以及创建正确的电子邮件标头.您还可以扩展类以设置默认值,例如SMTP服务器和电子邮件/名称,这样您就不必在每次发送电子邮件时都设置这些默认值.它还可以进行非常好的错误报告和调试.

我还建议这个课程发送1000封电子邮件.我最近在一天内做了> 5000并且没有问题.