可能重复:
如何configuration远程SMTP的php.ini?
我们有一个运行在Linux上的PHP应用程序,它将电子邮件发送给用户。 目前,其设置像php.iniconfiguration为通过本地sendmail服务器发送,但我们有单独的邮件服务器为我们的组织这个域。 我想通过远程smtp服务器发送php应用程序的电子邮件,以便这些电子邮件可以有正确的SPFlogging,并通过DKIM签名。
但是我在php.ini中看不到这样的选项来指定远程主机地址来转发电子邮件,只有Windows才有。
我看到一些提示phpMailerpost,但我找不到如何configuration,所以我们所有的PHP应用程序可以通过我们的远程SMTP发送。
我会安装nullmailer并configuration它将电子邮件转发到您的中继服务器。 您正在使用的Linux发行版很可能具有nullmailer软件包,因此sendmail二进制文件(即与命令行兼容)安装在适当的位置。
如果你不想安装nullmailer,也可以使用sendmail。 如果你想,我会更新答案。
更新:
如果你想在sendmail下做这个,你有很多select:
(1)在sendmail.mc中,将SMART_HOST定义为您的邮件中继服务器:
define(SMART_HOST, `smtp:[relay.server]')dnl
(2)您可以使用FEATURE(nullclient) 。
(3)修改规则集0来做到这一点。 在sendmail.mc中添加以下几行:
LOCAL_RULE_0 R$* < @ $* . > $* $#esmtp $@ [relay.server] $: $1 < @ $2 . > $3
不要复制粘贴上面的代码片段,因为左侧是用制表符而不是空格分开的。
编辑sendmail.mc后,您需要编译sendmail.cf并重新启动sendmail。 在Debian中,这是通过运行sendmailconfig来完成的。 在CentOS中,这是通过运行/etc/mail/make然后service sendmail restart 。
请先search,这是之前问(例如在如何configuration远程SMTP php.ini? )。
PHP mail()函数总是使用sendmail(在Linux / Unix上)。 没有办法改变php.ini。 这留下了另外两种方式:
mail()函数的所有调用。 sendmail命令的程序)来做正确的事情,即将域的邮件服务器设置为智能主机。