接收有關全新 Debian 的電子郵件
我在我的 VPS 上重新安裝了全新的 Debian 8。
全部設置為預設值。
dpkg -s exim4
並dpkg -s postfix
說沒有安裝exim,**並且安裝了postfix 。這可以通過lsof -i :25
顯示 PID 478 來確認,然後ps p 478
顯示478 ? Ss 0:00 /usr/lib/postfix/master
。沒做過apt-get install postfix
,好像已經預設安裝了。我已經為
example.com
我的註冊商完成了 DNS MX 記錄,並將其指向我的伺服器。我剛剛從我的 Gmail 發送了一封電子郵件到
root@example.com
.
- 我還在
No mail
做的時候看到- 如何查看是否有東西到達後綴?
- 是否需要在全新的 Debian 安裝上進行配置以接受來自網際網路的電子郵件?
- 我應該在
root
本地創建郵箱,以接受來自外部郵寄者的郵件root@example.com
嗎?這是
iptables
(未修改,預設配置)的結果:root@blah:~# iptables -nvL Chain INPUT (policy ACCEPT 77135 packets, 50M bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 2 packets, 120 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 66416 packets, 11M bytes) pkts bytes target prot opt in out source destination
我現在看到
cat /var/log/mail.log
這個:Nov 22 11:57:32 blah postfix/smtpd[10485]: connect from mail-ua0-f171.google.com[209.85.xxx.xxx] Nov 22 11:57:32 blah postfix/smtpd[10485]: NOQUEUE: reject: RCPT from mail-ua0-f171.google.com[209.85.xxx.xxx]: 454 4.7.1 <root@example.com>: Relay access denied; from=<user@gmail.com> to=<root@example.com> proto=ESMTP helo=<mail-ua0-f171.google.com> Nov 22 11:57:32 blah postfix/smtpd[10485]: disconnect from mail-ua0-f171.google.com[209.85.xxx.xxx]
此行包含您需要的有用資訊
Nov 22 11:57:32 blah postfix/smtpd[10485]: NOQUEUE: reject: RCPT from mail-ua0-f171.google.com[209.85.xxx.xxx]: 454 4.7.1 <root@example.com>: Relay access denied; from=<user@gmail.com> to=<root@example.com ...
這告訴您的是您的機器拒絕將來自 Google 的消息中繼到 root@example.com。現在,您知道您的機器是 example.com,但顯然您的機器不是。
解決方案:修改本地配置以包含 example.com 作為本地電腦的名稱。Postfix 網站 (((BASIC_CONFIGURATION_README.html)[ http://www.postfix.org/BASIC_CONFIGURATION_README.html#mydestination] )上有一個易於閱讀的文件,解釋瞭如何設置:
我自己的域名
mydomain 參數指定的父域 $ myhostname. By default, it is derived from $ myhostname 通過剝離第一部分(除非結果是頂級域)。
相反,如果你在 main.cf 中指定 mydomain,那麼 Postfix 將使用它的值來為 myhostname 參數生成一個完全限定的預設值。
範例(僅指定以下一項):
/etc/postfix/main.cf: mydomain = local.domain mydomain = virtual.domain (virtual interface)
接收郵件的域
mydestination 參數指定這台機器將在本地傳遞哪些域,而不是轉發到另一台機器。預設是接收機器本身的郵件。有關如何為託管域配置 Postfix 的資訊,請參閱 VIRTUAL_README 文件。
您可以指定零個或多個域名、“/file/name”模式和/或“type:table”查找表(例如 hash:、btree:、nis:、ldap: 或 mysql:),以空格和/ 或逗號。“/file/name”模式被其內容替換;“type:table” 請求完成表查找並僅測試是否存在:查找結果被忽略。
重要提示:如果您的機器是其整個域的郵件伺服器,您也必須列出 $mydomain。
範例 1:預設設置。
/etc/postfix/main.cf: mydestination = $myhostname localhost.$mydomain localhost
範例 2:域範圍的郵件伺服器。
/etc/postfix/main.cf: mydestination = $myhostname localhost.$mydomain localhost $mydomain
範例 3:具有多個 DNS A 記錄的主機。
/etc/postfix/main.cf: mydestination = $myhostname localhost.$mydomain localhost www.$mydomain ftp.$mydomain
注意:為了避免郵件傳遞循環,您必須列出機器的所有主機名,包括 $ myhostname, and localhost. $ 我的域名。
所以,這應該足夠了:
mydomain = example.com ... mydestination = $myhostname localhost.$mydomain localhost $mydomain