Postfix 子域可以發送,但不能接收外部電子郵件
我正在設置 AWS EC2 實例,我需要伺服器能夠接收電子郵件。假設我在 subdomain 上設置電子郵件
mail.myserver.com
。我安裝了 Postfix,我可以在本地發送/接收電子郵件。我可以從伺服器向我的外部 gmail 帳戶發送電子郵件。我還可以從我的筆記型電腦遠端登錄到埠 25,
telnet mail.myserver.com 25
並成功地向伺服器發送電子郵件。但是,如果我嘗試從 gmail 或 Outlook 向伺服器發送電子郵件,則什麼都沒有……蟋蟀。電子郵件不會退回。沒有錯誤資訊。我檢查了後綴日誌,
/var/log/email.log
沒有任何來自 gmail/outlook 的傳入連接的跡象。我檢查錯誤/var/log/email.err
並沒有任何東西。我想知道這是否可能是 DNS 問題,因為我之前已經為
myserver.com
IP 地址為111.111.111.111的伺服器設置了電子郵件。但我目前正在嘗試在mail.myserver.com
IP 地址為 22.22.22.22的子域中配置一個單獨的伺服器。以下是
myserver.com
具有工作電子郵件的主域和mail.myserver.com
目前不會接收外部郵件的新子域的 DNS 記錄:A @ 111.111.111.111 A mail 22.22.22.22 MX @ @ (Priority: 0) MX mail mail (Priority: 0) TXT @ v=spf1 mx -all TXT mail v=spf1 mx -all
這是後綴配置
/etc/postfix/main.cf
:# See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h readme_directory = no # See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on # fresh installs. compatibility_level = 2 # TLS parameters smtpd_tls_cert_file=/etc/letsencrypt/live/mail.myserver.com/fullchain.pem smtpd_tls_key_file=/etc/letsencrypt/live/mail.myserver.com/privkey.pem smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_tls_security_level = may smtpd_tls_protocols = !SSLv2, !SSLv3 !TLSv1 smtpd_tls_loglevel = 1 smtp_tls_note_starttls_offer = yes smtpd_tls_received_header = yes # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for # information on enabling SSL in the smtp client. smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination myhostname = mail.myserver.com home_mailbox = Maildir/ virtual_alias_maps = hash:/etc/postfix/virtual alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = mail.myserver.com, localhost, ip-x-x-x-x.us-east-2.compute.internal, localhost.us-east-2.compute.internal, localhost.$mydomain relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all home_mailbox = Maildir/
作為旁注,我還檢查了主域的郵箱和日誌,
myserver.com
以確保電子郵件不會因某種原因在那裡結束。他們不是。日誌中沒有任何內容。我已經堅持了 24 小時,當我沒有收到任何錯誤消息或退回郵件時,我不確定如何繼續解決此問題。歡迎所有建議!
如果您在定義 MX 記錄時未指定如何處理不合格名稱,請輸入郵件伺服器 A+AAAA 的完全合格名稱。整個名稱,以點結尾,如下所示:
@ IN MX 10 mx1.mydomain.example. subdomain IN MX 10 mx1.mydomain.example. mx1 IN A 192.0.2.1 mx1 IN AAAA 2001:db8::1
我認為這是您的問題,因為您提供的 dns 資訊
MX mail mail (Priority: 0)
在 MX 記錄中缺少完全限定名稱。如果軟體沒有使用您的域完成非限定名稱,則郵件可能會被傳遞到其他地方(或者在這種情況下,可能根本沒有,因為域目前沒有解析)。