S.o*_*.ov 7 linux ubuntu email-server postfix
我正在具有电缆连接的本地网络上配置备份服务器。有线 ISP 正在过滤所有端口 25 (smtp) 流量。
uname -a
Linux myhost 4.4.0-119-generic #143-Ubuntu SMP Mon Apr 2 16:08:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
结果,我的外发邮件交易超时,因为(我怀疑)默认的 Postfix 配置使用端口 25。(我基本上使用 shell 中的 sendmail 命令从该服务器发送状态报告)
我已经确认我可以 telnet 到目标服务器上的端口 587:
# telnet myserver.net 587
Trying x.x.x.x...
Connected to myserver.net.
Escape character is '^]'.
EHLO 220 myserver.net ESMTP Sendmail 8.14.7/8.14.7; Mon, 7 May 2018 18:16:08
-0500 (CDT)
myhost.net
250-myserver.net Hello hostname [x.x.x.x], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
250-DELIVERBY
250 HELP
Run Code Online (Sandbox Code Playgroud)
如何更新我的 Postfix 安装,使其使用端口 587 并且与上述服务器的协议兼容?(除非已经支持加密,否则不需要/不需要加密 - 不要相信 TLS 在此之上)
我试过编辑 /etc/postfix/master.cf 并取消注释这一行:
smtpd pass - - y - - smtpd
Run Code Online (Sandbox Code Playgroud)
但我仍然收到超时错误,表明它没有使用 587。我现在没有启用 ufw,所以这可能不是问题。
我假设我需要后缀一些额外的配置选项?
我认为您正在尝试使用提交(端口587)通过外部邮件服务器中继所有出站邮件。其他任何事情都没有意义,因为提交是为了向客户端提供经过身份验证的 SMTP,而 MTA 之间的正常通信是使用 SMTP port 完成的25。
中的提交配置/etc/postfix/master.cf用于为您的客户端提供提交 smtpd,并且不会改变 Postfix 发送出站邮件的行为。
相反,您需要配置非本地邮件的下一跳目的地ie relayhostinmain.cf以及此连接的身份验证,例如
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:USERNAME:PASSWORD
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
relayhost = [198.51.100.10]:587
Run Code Online (Sandbox Code Playgroud)
虽然本地网络的Postfix 标准配置示例有此信息,但可能难以解释。幸运的是,有许多针对此特定用途的详细教程,包括: