Php

為中繼配置 Exim Sendmail

  • October 8, 2010

我在 UltraHosting.com 有一個 VPS 伺服器,並且要求我在發送電子郵件時使用“智能中繼”。但是我無法使用 php mail() 函式發送郵件。

這是他們在 Smart Relay 上的一篇文章:support.ultrahosting.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=142

那裡顯示的設置在我的 Exim 配置中。

我還嘗試按照此處的建議配置我的發送郵件http://support.ultrahosting.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=175&nav=0

但是我在我的 centOS 伺服器上找不到我的 sendmail.cg。命令“whereis sendmail.cf”表示sendmail:/usr/sbin/sendmail /usr/lib/sendmail

伺服器正在使用 cpanel 和 exim

我發送了以下支持票

如何配置伺服器以使用 php.ini 發送郵件。我正在編寫一個腳本,它將向使用者發送密碼 usigng PHPs 郵件功能。但是,發送的電子郵件永遠不會送達。這與“智能繼電器”有關嗎?關於如何配置的任何指南?

回應是:

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 郵件功能?

在您的 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。

引用自:https://serverfault.com/questions/188840