Postfix 使用 Gmail 中继:必须先发出 STARTTLS 命令

Postfix 使用 Gmail 中继:必须先发出 STARTTLS 命令

我收到此错误:必须先发出 STARTTLS 命令包含所有已发送的邮件。

有人知道为什么吗?

主文件:

relayhost=[smtp.gmail.com]:587
smtp_connection_cache_destinations= [smtp.gmail.com]:587

#TLS parameters
smtpd_use_tls = yes
smtpd_sasl_auth_enable = yes
smtpd_tls_auth_only = no
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_note_starttls_offer = yes
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
smtp_tls_security_level = encrypt
# SASL Configuration
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_enforce_tls = no
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_sasl_tls_security_options = noanonymous

tls_策略

[smtp.gmail.com]:587 encrypt

sasl 密码

smtp.gmail.com:587 [email protected]:password

是的,我已经在所有数据文件上运行了 postmap,并在进行更改后重新加载了 postfix。

短暂性脑缺血发作

答案1

你应该使用smtp_enforce_tls = yes

答案2

看来你的 postfix 试图发出AUTH 发出STARTTLS(-> 它不发出STARTTLS)。据我所知,Gmail 仅在 STARTTLS 之后在端口 25 和 587 上提供 SMTP AUTH。

添加后您是否重新启动了 postfix 守护进程smtp_use_tls=yes

http://mhawthorne.net/posts/postfix-configuring-gmail-as-relay.html

答案3

我可以确认 /etc/postfix.main.cf 中的设置smtp_tls_security_level = encrypt可以解决此问题。

相关内容