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

标签 php linux email smtp postfix-mta

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

我希望能够从托管在单独 CentOS 服务器上的 PHP 应用程序向我的最终用户发送邮件,使用专用邮件服务器的 Postfix 作为 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')

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

关于php - 通过运行 postfix 的单独电子邮件服务器从 php 应用程序发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19395486/

相关文章:

python-3.x - 在 Python 3.4.3 中,如何使用 IMAP 协议(protocol)发送标志 'Seen'

php - 使用 php 创建自定义的谷歌地图

linux - Qt和虚拟串口

php - 使用已使用 filter_input() 过滤的 htmlspecialchars() 从数据库输出数据

linux - 在 Linux 中的 sed 命令中执行 cat 命令

java - 通过 JNI 克隆一个带有 POSIX fork 的 JVM,但子 JVM 不会退出

ruby-on-rails - Rails delay_job以HTML格式发送电子邮件

python - request.user 在 Django 中指的是什么?

php - 如何向 MAMP 添加其他 PHP 版本

php - undefined offset : 1 error for laravel validation