配置 Exim Sendmail 进行中继

配置 Exim Sendmail 进行中继

我在 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。

相关内容