在全新 Debian 接收電子郵件

在全新 Debian 接收電子郵件

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

全部設定為預設值。

dpkg -s exim4dpkg -s 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 發送了一封電子郵件至[email protected]

  1. No mail做的時候還是看的$ mail

  2. 如何查看東西是否已到達 postfix?

  3. 是否需要在全新安裝的 Debian 上進行設定以接受來自互聯網的電子郵件?

  4. 我應該在本地建立郵箱root以接受來自外部郵件發送者的郵件嗎[email protected]


這是結果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 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> 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]

答案1

此行包含您需要的有用信息

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 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected] ...

這告訴您的是,您的機器拒絕將來自 Google 的訊息轉發到[電子郵件受保護]。現在,您知道您的機器是 example.com,但顯然您的機器不是。

解決方案:修改本機設定以包含 example.com 作為本機的名稱。 Postfix 網站上有一個易於閱讀的文件 (((BASIC_CONFIGURATION_README.html)[http://www.postfix.org/BASIC_CONFIGURATION_README.html#mydestination])解釋如何設定:

我自己的域名

mydomain 參數指定 $myhostname 的父網域。預設情況下,它是透過剝離第一部分從 $myhostname 派生的(除非結果是頂級網域)。

相反,如果您在 main.cf 中指定 mydomain,則 Postfix 將使用其值為 myhostname 參數產生完全限定的預設值。

範例(僅指定以下其中一項):

/etc/postfix/main.cf:
    mydomain = local.domain
    mydomain = virtual.domain (virtual interface)

接收哪些網域的郵件

mydestination 參數指定機器將在本機傳送哪些網域,而不是轉送到另一台機器。預設為機器本身接收郵件。請參閱 VIRTUAL_README 檔案以了解如何為託管網域設定 Postfix。

您可以指定零個或多個網域、「/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 和 localhost.$mydomain。

所以,這應該夠了:

mydomain = example.com
...
mydestination = $myhostname localhost.$mydomain localhost $mydomain

答案2

除了 roaima 的答案之外,這也解決了這個問題:

  1. mydestination = <....>, mydomain.com在in末尾添加域名/etc/postfix/main.cf

  2. 註解掉這一行:#mailbox_command = procmail -a "$EXTENSION"

  3. 然後從 Gmail 發送電子郵件至[email protected],等待幾秒鐘

  4. 這樣做mail,您將看到新電子郵件:)

相關內容