通过运行后缀的单独电子邮件服务器从 php 应用程序发送电子邮件


Send email from php application through a separate email server running postfix

我最近設立了一個 CentOS 伺服器,我計劃只用於電子郵件。我安装并配置了Postfix,通过命令行发送/接收消息工作正常。

我希望能够从托管在单独 CentOS 服务器上的 PHP 应用程序向我的最终用户发送邮件,使用专用邮件服务器的后缀作为 MTA。 这可能吗?还是我需要在Apache/PHP所在的服务器上安装Postfix?

如果可能,我该如何连接/中继要发送的消息?

我正在寻找运行自己的邮件服务器的常见约定/最佳实践,因此非常感谢任何建议。谢谢!

如果您在 PHP 中使用 mail(),文档指出它只在本地计算机上使用 sendmail。

但是,您可以设置 sendmail 以将邮件转发到您的其他服务器,如以下链接所示:http://www.cyberciti.biz/faq/configure-sendmail-as-a-smart-host/

根据该页面,您可以执行以下操作:

添加到/etc/mail/sendmail.mc

define(`SMART_HOST',`my_smtp_server')

然后重新启动发送邮件。如果仍然不起作用,您可能需要运行:

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

cd /etc/mail; make

,然后重新启动发送邮件。

如果您需要伪造 sendmail 使用的服务器名称,您可以在 sendmail.nc 中添加以下内容(参考: https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s2-email-mta-sendmail.html):

FEATURE(always_add_domain)
FEATURE(`masquerade_entire_domain')
FEATURE(`masquerade_envelope')
FEATURE(`allmasquerade')
MASQUERADE_AS(`my_public_domain.')
MASQUERADE_DOMAIN(`my_public_domain.')
MASQUERADE_AS(my_public_domain)

您可以在 php/apache 所在的同一服务器上将后缀配置为 MTA,如果您将其保持在远程位置,则必须确保与 MTA 的正确连接,并且由于任何超时问题,您的邮件可能无法传递。因此,您可以在本地 apache/php 服务器上运行 postfix,并使用 php 配置其设置以发送电子邮件。

http://email.about.com/od/emailprogrammingtips/qt/How_to_Send_Email_from_a_PHP_Script.htm

上面的链接会有所帮助。

谢谢和问候,
阿洛克·塞克