Email

來自 Debian 8.0 “Jessie” 的 Exim 的最小設置可以開箱即用地接收郵件

  • May 14, 2015

我正在尋找一個簡單的建議,以使預設的 Debian 8 Jessieexim4-daemon-heavy安裝能夠真正接收任何郵件,基本上(最少)應該做些什麼。

說到安裝軟體包後的基本操作,我的意思是設置MX記錄並通過以下方式進行初始配置dpkg-reconfigure exim4-config

  1. 類型:網際網路站點
  2. 系統郵件名稱:example.org
  3. 偵聽傳入 SMTP 的 IP:
  4. 其他目的地:
  5. 要中繼的域:
  6. 中繼機器:
  7. 最少的 DNS 查詢:
  8. 投遞方式:Maildir格式
  9. 拆分配置:

這顯然會生成這樣的/etc/exim4/update-exim4.conf.conf文件:

dc_eximconfig_configtype='internet'
dc_other_hostnames=''
dc_local_interfaces=''
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='maildir_home'

最後一個動作是設置/etc/mailnameexample.org

上述所有內容足以讓 Exim 發送電子郵件,但如果有人試圖向您發送電子郵件,您將收到這個煩人的relay not permitted錯誤:

H=example.net [192.0.2.1] F=<someone@example.net> rejected RCPT <me@example.org>: relay not permitted

這種行為非常典型,上次我設置 Exim(Debian 7 Wheezy’s)我花了很多時間設置這個和那個,最後它起作用了。我不想 rsync 舊配置,我只想知道什麼設置使 Exim 能夠接收電子郵件

有興趣的人的Exim版本:

me@jessie:~$ exim -bV
Exim version 4.84 #2 built 17-Feb-2015 17:45:46
Copyright (c) University of Cambridge, 1995 - 2014
(c) The Exim Maintainers and contributors in ACKNOWLEDGMENTS file, 2007 - 2014
Berkeley DB: Berkeley DB 5.3.28: (September  9, 2013)
Support for: crypteq iconv() IPv6 PAM Perl Expand_dlfunc GnuTLS move_frozen_messages Content_Scanning DKIM Old_Demime PRDR OCSP
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch ldap ldapdn ldapm mysql nis nis0 passwd pgsql sqlite
Authenticators: cram_md5 cyrus_sasl dovecot plaintext spa
Routers: accept dnslookup ipliteral iplookup manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
Configuration file is /var/lib/exim4/config.autogenerated

好吧,我已經進行了徹底的檢查diff並找到了這些設置,這些設置使 Exim 接收電子郵件:

  1. /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs:

註釋掉或刪除這個塊(第 64-66 行):

.ifdef MAIN_LOCAL_INTERFACES
local_interfaces = MAIN_LOCAL_INTERFACES
.endif

並將其改為(注意地址和埠之間的點,這不是錯字):

local_interfaces = 0.0.0.0.25
  1. /etc/exim4/conf.d/main/02_exim4-config_options:

註釋掉或刪除這個塊(第 90-92 行):

.ifdef MAIN_HARDCODE_PRIMARY_HOSTNAME
primary_hostname = MAIN_HARDCODE_PRIMARY_HOSTNAME
.endif

並放置這個(當然是你的真實主機名):

primary_hostname = example.org

我不確定哪個設置可以解決問題,也許兩者都有。奇怪的是,當我試圖恢復這種行為並放棄我的編輯時,Exim 並沒有停止接收郵件。可能它從這些配置中學到了一些有用的東西(已設置變數)。

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