Postfix

Cloudflare 中的郵件伺服器和 MX 記錄

  • February 16, 2017

我在 CentOS 6 中使用 postfix/dovecot 建構了自己的郵件伺服器,這是我的 postconf -n 結果:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
home_mailbox = Maildir/
html_directory = no
inet_interfaces = localhost
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = example.com
myhostname = mail.example.com
mynetworks = 168.100.189.0/28, 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
relay_domains =
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550

我嘗試使用 telnet 測試我的電子郵件,我確實將它們放在 /home/user/Maildir/new 文件夾中。

我假設郵件伺服器一切正常,所以我繼續將 MX 記錄添加到我的 DNS 設置中。

這是我第一次使用 Cloudflare 的免費 DNS 服務,我承認在這方面我不是最有見識的人,但我在其中添加了幾條記錄:

  • MX - @ =​​> mail.example.com
  • A - mail.example.com => 我的 VPS ip(郵件伺服器所在的位置)

MX 記錄似乎已經到位,一個快速的“dig MX example.com”確實會產生結果。現在的問題是……即使我將記錄創建為mail.example.com,通過 dig 看到的實際條目是dc-8c1937cd-mail.example.com。,似乎已將一個字元串附加到 DNS 記錄中。

從那以後,我嘗試從外部來源(不是 telnet)發送電子郵件但沒有成功。我是否需要重新配置後綴並將 myhostname 設置為 dc-8c1937cd-mail.example.com.?我是否在 DNS 的宏偉計劃中遺漏了一些東西,或者這只是 Cloudflare 的運作方式?我的郵件伺服器是否配置不正確?(來自我的 telnet 測試的日誌看起來不錯)

問題是inet_interfaces = localhost,導致 postfix 僅在本地偵聽埠 25,將其設置為inet_interfaces = all修復問題。

在 CloudFlare DNS 設置中,確保mailA 記錄具有“灰色”雲,以便與該主機的連接繞過 CloudFlare 並直接轉到您的郵件伺服器。

除此之外,您的 DNS 似乎處於一個可行的配置中,並且您(根據您自己的承認)成功接收郵件。

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