Exim4:接收和轉發多個域的電子郵件
我正在執行一個 VPS 來託管我客戶的網站。他們的電子郵件需求非常有限(基本上他們只想要一個轉發到他們的 gmail 帳戶的 info@clientdomain.com 地址)。我試圖設置 exim4(在 ubuntu 16.04 上)來做到這一點,但我只是得到
550 Unrouteable address
.Exim 目前可以正常發送郵件。但是我的 /etc/aliases 文件沒有區別:
postmaster: root www-data: root root: MYUSER@gmail.com repairs@example-client1.co.uk: example-client1@gmail.com andrea@example-client2.com: example-client2@gmail.com me@MYDOMAIN.com: MYSUER@gmail.com
我跑了
dpkg-reconfigure exim4
,告訴它我想接受的域:dc_eximconfig_configtype='internet' dc_other_hostnames='#######.com; ######.com; ####.com;#####.co.uk;' dc_local_interfaces='' dc_readhost='' dc_relay_domains='' dc_minimaldns='false' dc_relay_nets='' dc_smarthost='' CFILEMODE='644' dc_use_split_config='false' dc_hide_mailname='' dc_mailname_in_oh='true' dc_localdelivery='mail_spool'
我發現 exim 的配置令人困惑,並且文件似乎沒有幫助。我想以“ubuntu 方式”配置 exim,以便將來的系統更新不會破壞我的設置。
感謝您提供的任何幫助。
這是@BillThor 答案的摘要,並添加了一些細節:
第1步
編輯
/etc/exim4/update-exim4.conf
並設置dc_other_hostnames
為包括您將為其轉發郵件的所有域。(如果您忘記這樣做,郵件將被退回)。第2步
創建一個目錄
/etc/exim4/virtual
並為每個域添加一個文件,並準確命名為域名。使用您希望轉發的別名填寫文件。例如# File: /etc/exim4/virtual/example.com # This will forward me@example.com to myemail@gmail.com me: myemail@gmail.com # This will forward postmaster@example.com to dave@gmail.com postmaster: dave@gmail.com
第 3 步
創建一個新文件
/etc/exim4/conf.d/router/350_local-config_vdomain_aliases
,內容如下:# This router handles aliasing using traditional /etc/aliases type files. # #### NB You must ensure that /etc/exim/virutual/${domain} file exist #### #### This works with the standard "name : destination" alias format # Domain aliases vdomain_aliases: debug_print = "R: vdomain_aliases for $local_part@$domain" driver = redirect allow_fail allow_defer domains = dsearch;/etc/exim4/virtual data = ${lookup{$local_part}lsearch*@{/etc/exim4/virtual/$domain}} qualify_preserve_domain
第4步
跑:
update-exim4.conf service exim4 restart
感謝您的所有幫助@BillThor
根據您的描述,您應該將伺服器配置為客戶域的主要 MX。有一些地址可能應該發送給您,例如
abuse
、和。這些應該由預設文件處理。postmaster``webmaster``hostmaster``/etc/aliases
預設配置僅使用本地部分來查找別名。您將需要專門處理您的客戶消息。當您轉發到 Gmail 時,您可能希望重新發送郵件而不是轉發它。這應該處理 SPF 和 DMARC 問題。
您是輔助 MX,您需要設置的變數是
dc_relay_domains
. 這應該是您將接受電子郵件作為輔助 MX 的域列表,由 (’:’) 分隔。空格是可選的,但使列表更易於閱讀。該文件的文件可通過命令獲得
man update-exim4.conf
。您可能還想熟悉Exim Mail Transfer Agent文件的規範。該命令
sudo dpkg-reconfigure exim4-config
將提供/etc/exim4/update-exim4.conf.conf
. 但是,您可以根據需要手動編輯文件。您可能希望將您作為輔助 MX 的域添加到 /etc/exim4/local_rcpt_callout。請閱讀文件以驗證這是否合適。在您接受郵件後退回您的次要域的郵件可能會產生反向散射垃圾郵件。這可能會將您的伺服器列入黑名單。
預設配置不支持別名文件中的域名。我使用以下內容來提供基於域的別名,儘管您可能不應該為您作為輔助 MX 的域提供別名。
# 此路由器使用傳統的 /etc/aliases 類型文件處理別名。 # #### 注意您必須確保 /etc/exim/virutual/${domain} 文件存在 #### #### 這適用於標準的“名稱:目的地”別名格式 # 域別名 vdomain_aliases: debug_print = "R: $local_part@$domain 的 vdomain_aliases" 驅動程序=重定向 允許失敗 允許延遲 域 = dsearch;/etc/exim4/virtual 數據 = ${lookup{$local_part}lsearch*@{/etc/exim4/virtual/$domain}} qualify_preserve_domain