0

我最近设置了一个 CentOS 服务器,我打算只用于电子邮件。我安装并配置了 Postfix,通过命令行发送/接收消息工作正常。

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

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

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

4

2 回答 2

2

如果您mail()在 PHP 中使用,文档说明它仅在本地机器上使用 sendmail。

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

根据该页面,您可以这样做:

添加到/etc/mail/sendmail.mc

define(`SMART_HOST',`my_smtp_server')

然后重启sendmail。如果它仍然不起作用,您可能需要运行:

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

或者

cd /etc/mail; make

然后重新启动 sendmail。

如果您需要伪造 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)
于 2013-10-16T05:40:46.327 回答
1

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

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

上面的链接会有所帮助。

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

于 2013-10-16T05:33:30.750 回答