
我使用的是帶有 centos 6.2 發行版的 linux。我有 2 個虛擬機器運行這些發行版。
一個虛擬機器被命名為“proxy”,另一個虛擬機器被命名為“auth”。
兩者都安裝了 sendmail。代理沒有網路連線。
我的目的是使用代理程式上的 php 頁面來傳送電子郵件,方法是讓代理程式中的 sendmail 將郵件轉發給 auth,然後讓 auth 發送電子郵件。 「auth」具有網路連線。
任何回饋都會有幫助,我們將不勝感激。
你好謝謝。我照你的建議做了。但是,我的代理仍然使用 root@localhost 進行中繼,而不是直接中繼到身份驗證:
Jan 14 08:18:57 test1 sendmail[10212]: s0EGEvce010212: from=proxy, size=235, class=0, nrcpts=1, msgid=<201401141614.s0EGEvce010212@test1>, relay=root@localhost Jan 14 08:18:57 test1 sendmail[10212]: s0EGEvce010212: [email protected], delay=00:04:00, mailer=esmtp, pri=30235, dsn=4.4.3, stat=queued
當我重新新增網路連線的預設閘道時,問題就消失了。然而,當我這樣做時,它只是發送郵件而不通過身份驗證。
但是,在代理程式和身份驗證之間發送郵件時會出現不同的情況:在這種情況下,使用的中繼是 auth.localdomain。
就目前情況而言,代理可以 ping 身份驗證,而無需路由到互聯網,反之亦然。
我的 sendmail.mc 檔案中有:
define(`SMART_HOST', `auth.localdomain')dnl
解決方案:
答案1
用 sendmail 術語來說,您需要設定「代理」以使用「身份驗證」作為智慧主機。
# /etc/mail/sendmail.mc
<snip>
(`SMART_HOST',`auth.mydomain.com`)
並從巨集重新建立 sendmail.cf。
然後配置“auth”以中繼來自“proxy”的訊息。
# /etc/mail/access
#
# By default we allow relaying from localhost...
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
Connect:proxy RELAY
並重新創建access.dbmakemap hash access.db < access