使用sendmail轉寄到一台sendmail伺服器並從該伺服器發送郵件

使用sendmail轉寄到一台sendmail伺服器並從該伺服器發送郵件

我使用的是帶有 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

解決方案:

Sendmail:郵件仍在轉寄到 root@localhost

答案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

相關內容