Debian

接收有關全新 Debian 的電子郵件

  • November 22, 2017

我在我的 VPS 上重新安裝了全新的 Debian 8。

全部設置為預設值。

dpkg -s exim4dpkg -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.

  1. 我還在No mail做的時候看到$ mail
  2. 如何查看是否有東西到達後綴?
  3. 是否需要在全新的 Debian 安裝上進行配置以接受來自網際網路的電子郵件?
  4. 我應該在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

引用自:https://unix.stackexchange.com/questions/406361