我最近设置了一个我计划用于电子邮件的CentOS服务器。我安装并配置了Postfix,并通过命令行发送/接收消息正常工作。
我希望能够使用专用邮件服务器的Postfix作为MTA,从托管在单独的CentOS服务器上的PHP应用程序向最终用户发送邮件。这可能吗?或者我需要在Apache / PHP所在的服务器上安装Postfix吗?
如果可能,我该如何连接/中继要发送的消息?
我正在寻找运行我自己的邮件服务器的常见约定/最佳实践,因此非常感谢任何建议。谢谢!
答案 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