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

时间:2013-10-16 04:52:45

标签: php linux email smtp postfix-mta

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

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

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

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

2 个答案:

答案 0 :(得分:2)

如果您在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')

然后重启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)

答案 1 :(得分: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

以上链接会有所帮助。

谢谢&问候,
Alok Thaker

相关问题