我在 Gitlab 的 Ubuntu 16.04 服务器上运行 Postfix,并且可以将电子邮件发送到除我的公司域之外的大多数域。据我所知,Postfix 从未尝试过我域下的邮件服务器 IP 地址。对于这个例子,假设我的电子邮件是[电子邮件受保护]邮件服务器地址为11.101.1.40。 Postfix 邮件日志报告:
Jan 5 10:05:10 linux-dev postfix/smtp[2058]: connect to company.com[11.202.17.1]:25: Connection timed out
Jan 5 10:05:40 linux-dev postfix/smtp[2058]: connect to company.com[11.101.1.46]:25: Connection timed out
Jan 5 10:06:10 linux-dev postfix/smtp[2058]: connect to company.com[11.101.56.8]:25: Connection timed out
所以它甚至没有尝试位于 11.101.1.40 的实际邮件服务器。我四处搜索,看到了编辑 /etc/hosts 文件以手动将域映射到正确 IP 的建议。所以在我的主机文件中,我添加了:
11.101.1.40 company.com
然后为了让 Postfix 使用主机文件以及 DNS 服务器,我将其添加到 /etc/postfix/main.cf 中:
smtp_host_lookup=dns, native
重新加载postfix,重新启动服务器等。Postfix仍然没有尝试邮件服务器IP。
所以,我将 /etc/postfix/main.cf 更改为
smtp_host_lookup=native
它有效!
Jan 5 10:22:27 linux-dev postfix/smtp[1317]: 9DBC61A405FB: to=<[email protected]>, relay=company.com[11.101.1.40]:25, delay=90665, delays=90664/0.04/0.51/0.26, dsn=2.0.0, status=sent (250 Message accepted for delivery)
好吧,也许我只需要更改 smtp_host_lookup 以便它首先检查本机:
smtp_host_lookup=native, dns
没有运气。它仍然不会尝试 11.101.1.40。关于我缺少的配置有什么想法吗?我希望能够将电子邮件发送到该邮件服务器和其他域。感谢您的任何帮助!
答案1
我在通信中遇到的大多数后缀问题,我都用这些设置修复了。
inet_protocols=ipv4
inet_interfaces = all
myhostname = mail.dom.com
smtpd_banner = $myhostname
mydomain = dom.com
myorigin = $mydomain
mydestination = localhost
mynetworks = 127.0.0.0/8
也在 /etc/hosts 中
127.0.0.1 localhost
127.0.0.1 mail.dom.com alias
192.168.1.100 mail.dom.com alias
99.222.33.44 mail.dom.com alias # YOUR ISP assigned IP
另请确保选择 inet_interfaces = all,以便 postfix 可以侦听您在 /etc/hosts 中设置的所有域