我可以连接我的带有 TLS 的 postfix 服务器。所有设置都已完成。但是当我使用此安全连接发送消息时,目标服务器(例如 gmail)在没有 TLS/SSL 安全连接的情况下接收了我的消息。
如果我使用另一台具有 cpanel 的服务器,Gmail 将通过 ESMTP 接收该消息年代。但是当我向 Gmail 帐户发送消息时,它通过 ESMTP 接收(而不是通过 TLS 连接)。
诚恳地,我发现我的 postfix 服务器没有通过 SSL/TLS 加密连接与目标进行协商。
http://www.checktls.com报告但是你的电子邮件已经发送它不是使用 TLS 安全发送的。
但是为什么我能够通过 TLS 连接我的服务器,但服务器却无法通过安全连接发送它?
这是配置文件:
主配置文件
myhostname = **hidden**
myorigin = /etc/mailname
mynetworks_style = host
mydestination = domains here...
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
mailbox_size_limit = 0
message_size_limit = 104857600
mailbox_transport = lmtp:unix:private/dovecot-lmtp
virtual_transport = lmtp:unix:private/dovecot-lmtp
smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
smtpd_tls_key_file = /etc/ssl/private/postfix.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=encrypt
smtpd_tls_protocols = !SSLv2, !SSLv3
smtp_dns_support_level = enabled
smtp_tls_loglevel = 1
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
# and the common settings to enable SASL:
smtpd_sasl_auth_enable = yes
# With Postfix version before 2.10, use smtpd_recipient_restrictions
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks permit_inet_interfaces
append_dot_mydomain = no
readme_directory = no
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
milter_protocol = 2
canonical_classes = header_recipient
主配置文件
smtp inet n - - - - smtpd
#submission inet n - - - - smtpd
# -o cleanup_service_name=subcleanup
# -o smtpd_tls_security_level=encrypt
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
submission inet n - n - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_wrappermode=yes
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
smtps inet n - - - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_wrappermode=yes
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
答案1
使能够机会性 TLS 支持即,当远程服务器标识自己支持 TLS 时,使用 TLS 发送消息,但当远程服务器不支持 TLS 时,以明文形式发送消息:
# main.cf
smtp_tls_security_level = may
您已smtpd_tls_security_level=encrypt
在配置中启用(仅一个字母的差异),它仅涵盖通过 SMTP 传入的电子邮件流量,但不涵盖传出的电子邮件。