Email

exim4 將發送到 *@domain1.example.com 的郵件重定向到 *@domain2.example.com

  • March 21, 2012

目前情況:

我們有一個託管網站 example.org 的 VPS。Exim 配置為作為智能主機工作。通過 exim 發送的所有電子郵件都成功中繼到另一個郵件伺服器(在 example.com 上工作)。

目標:

將發送到*@example.org 的郵件轉發到*@example.com,即將收件人地址從*@example.org 更改為*@example.com。

問題:

如果我向地址 *@example.org 發送電子郵件,那麼 exim 似乎沒有更改地址,它仍然將郵件中繼到另一個郵件伺服器,但收件人仍然是 *@example.org。也許由於某種原因沒有應用重定向。

配置和日誌:

/etc/exim4/update-exim4.conf.conf:

dc_eximconfig_configtype=‘smarthost’

dc_other_hostnames=''

dc_local_interfaces=''

dc_readhost=‘example.org’

dc_relay_domains=‘example.org’

dc_minimaldns=‘false’

dc_relay_nets=‘0.0.0.0/32’

dc_smarthost=‘example.com::26 '

CFILEMODE=‘644’

dc_use_split_config=‘false’

dc_hide_mailname=‘true’

dc_mailname_in_oh=‘true’

dc_localdelivery=‘maildir_home’

/etc/exim4/conf.d/router/999_exim4-config_redirect (由我創建):

domain_redirect:  
    debug_print = "R: forward for $local_part@$domain"  
    driver = redirect  
    domains = example.org
    data = it@example.com

(為了簡單和測試,現在數據被設置到一個特定的地址)

it@example.org 發送電子郵件時的 exim 日誌(應重定向到 it@example.com):

2012-03-20 19:40:07 1SA4ud-0005Dw-7k <= test@example.org U=www-data P=local S=657
2012-03-20 19:40:08 1SA4ud-0005Dw-7k => it@example.org R=smarthost T=remote_smtp_smarthost H=domain2.com [184.172.146.66] X=TLS1.0:RSA_AES_256_CBC_SHA1:32 DN="C=US,2.5.4.17=#13053737303932,ST=TX,L=Houston,STREET=Suite 400,STREET=11251 Northwest Freeway,O=HostGator.com,OU=HostGator.com,OU=Comodo PremiumSSL Wildcard,CN=*.hostgator.com"
2012-03-20 19:40:08 1SA4ud-0005Dw-7k Completed

所以,地址沒有改變:(

請幫忙!我正在努力讓它工作半天:(

解決方案:

所以,aseq幫我解決了這個問題。雖然解決方案對我來說有點奇怪。當我嘗試設置 dc_use_split_config=‘true’ 時,它沒有幫助,看起來我的重定向文件沒有被使用。此外,當我嘗試將這些重​​定向行添加到 /etc/exim4/exim4.conf.template 的末尾時,它也無濟於事。但是當我試圖在“開始路由器”行之後粘貼這些行時,它終於奏效了!

請使用 example.com 而不是 domain2.com,example.com(和 .org .net)是專門為範例和文件創建的。

在您的 /etc/exim4/update-exim4.conf.conf 中,您已配置:

dc_use_split_config='false'

但是,您正在更改 /etc/exim4/conf.d/router/999_exim4-config_redirect 中的某些內容,這些內容將被忽略,因為您沒有使用拆分配置。

要麼做:

dc_use_split_config='true'

並重新載入 exim4,您可能更喜歡使用以下方法更改它:

dpkg-reconfigure exim4-config

或者編輯 /etc/exim4/exim4.conf.template 以添加您的自定義,並在完成後重新載入 exim4。

Debian exim4 有一個名為 hubbed_hosts 的功能,它可以方便地完成您想要的操作,而無需添加您自己的路由器等。

因此,如果您希望您的伺服器將發往域 example.org 的電子郵件發送到域 example.com,該域的 MTA 在 IP 192.0.2.1 和 192.0.2.10 上偵聽,請執行以下操作:

  • 創建 /etc/exim4/hubbed_hosts 並添加:

example.org: 192.0.2.1:192.0.2.10

  • 重新載入 exim4

請注意,IP 地址之間沒有空格,它們用冒號“:”分隔

這樣做的目的是將發往 example.org 的電子郵件中繼到 IP 192.0.2.1,192.0.2.10(在我的範例中為 example.com 的 IP)。因此它將忽略該域的 MX 記錄。IP 地址可以是任何東西,只要它被配置為接收這些電子郵件。

最後是地址改寫,見:http ://www.exim.org/exim-html-current/doc/html/spec_html/ch31.html 也許它有一些東西會滿足你的要求。除了 hubbed_hosts,您還可以使用它。

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