exim4 將發送到 *@domain1.example.com 的郵件重定向到 *@domain2.example.com
目前情況:
我們有一個託管網站 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,您還可以使用它。