默认情况下,PHP 的mail()
函数会将邮件发送到sendmail
Linux 上的程序。
要使 sendmail 正常工作,您需要具有正确配置且功能正常的 MTA。例如,postfix 是一个相对容易配置的 MTA。
配置 MTA 时,您可以将其配置为直接发送邮件,作为 Internet 上的邮件服务器,或将您的邮件中继到另一台服务器。
配置您自己的 MTA 以直接传递邮件并不适合轻松愉快的人。发送电子邮件现在变得很复杂,需要大量工作才能让您的邮件被 gmail 或 yahoo 等主要邮件服务器接受。
如果您的 ISP 提供外发邮件服务器并且乐意为您中继邮件,您可以设置 postfix 以通过该服务器中继所有邮件,并为您自己节省一些配置麻烦。如果您使用后缀,则只需像在后缀配置中的空客户端上的后缀下的示例一样设置它。
无论您如何配置邮件服务器,要记住的主要事情是避免将其设置为在传出网络上中继传入的邮件(即,将其设置为开放中继)。在空邮件程序示例配置中,该行inet_interfaces = loopback-only
实现了这一点。
请注意,将 postfix 或其他东西设置为 MTA 的替代方法是使用 PHP 自己的内置 SMTP 支持,这实际上意味着您将 PHP 本身用作 MTA,它只将邮件转发到中继。
使用像 postfix 这样的专用 MTA 的优点是可靠性。如果到达外部邮件中继时出现临时问题,Postfix 可以将电子邮件排队。它还会在邮件排队后立即返回,因此您的 PHP 邮件函数将执行得更快,并且在邮件传递到外部邮件中继时无需等待。