我在 UltraHosting.com 有一个 VPS 服务器,需要使用“智能中继”来发送电子邮件。但是我无法使用 php mail() 函数发送邮件。
这是他们关于智能中继的一篇文章:support.ultrahosting.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=142
那里显示的设置位于我的 Exim 配置中。
我也尝试按照这里的建议配置我的sendmailhttp://support.ultrahosting.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=175&nav=0
但是我在 centOS 服务器上找不到 sendmail.cg。命令“whereis sendmail.cf”显示发送邮件:/usr/sbin/sendmail /usr/lib/sendmail
服务器正在使用 cpanel 和 exim
我发送了以下支持票:
如何配置服务器以使用 php 发送邮件。我正在编写一个脚本,该脚本将使用 PHP 邮件功能发送用户密码。但是发送的电子邮件从未送达。这与“智能中继”有关吗?有没有关于如何配置它的指南?
答复是:
While we do not provide scripting support of any kind, if you simply
确保智能主机在您的脚本中是硬编码的(不需要身份验证),电子邮件应该相应地转发。
If your script uses the server's SMTP server to send out email, you'll
必须确保 MTA 配置为使用智能主机
。
有人能解释一下我需要做什么才能解决这个问题,以便我可以使用 PHP 邮件功能吗?
答案1
在您的 exim 配置的路由器部分,您将拥有一个如下所示的路由器:
lookuphost:
driver = lookuphost
transport = remote_smtp
这告诉 exim 直接发送邮件。您需要告诉它改用智能主机。
将上面的路由器替换为如下内容:
smarthost:
driver = manualroute
domains= ! +local_domains
transport = remote_smtp
route_list = * smtp.ultrahosting.com byname
host_find_failed = defer
no_more
确保新路由器中的传输名称与原始路由器中的传输名称相同(本例中为 remote_smtp)。
此外,进行这些更改后,您还需要重新启动 exim。