我通过取消注释 master.cf 中的以下行来启用端口 465:
smtps inet n - y - - smtpd
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_client_restrictions=$mua_client_restrictions
-o smtpd_helo_restrictions=$mua_helo_restrictions
-o smtpd_sender_restrictions=$mua_sender_restrictions
并且端口 465 已启用。但是,当我使用 PHPMailer 通过 SSL 连接到它时,它说无法连接。但是当我使用 STARTTLS 时,它可以工作。这是为什么?我认为当我们使用 SSL 连接到它时它应该可以工作。有什么解决方案吗?
PHPMailer 配置:
$mail->isSMTP();
$mail->Host = 'example.com';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port = 465;
$mail->SMTPAutoTLS = false;
主文件:
# TLS configuration starts here
tls_random_source = dev:/dev/urandom
# SMTP from your server to others
smtp_tls_key_file = /some/place/to/ssl/domain.key
smtp_tls_cert_file = /some/place/to/ssl/domain.crt
smtp_tls_CAfile = /some/place/to/ssl/domain.crt
smtp_tls_security_level = encrypt
smtp_tls_note_starttls_offer = yes
smtp_tls_mandatory_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtp_tls_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtp_tls_loglevel = 0
smtp_tls_session_cache_database =
btree:/var/lib/postfix/smtp_tls_session_cache
# SMTP from other servers to yours
smtpd_tls_key_file = /some/place/to/ssl/domain.key
smtpd_tls_cert_file = /some/place/to/ssl/domain.crt
smtpd_tls_CAfile = /some/place/to/ssl/domain.crt
smtpd_tls_security_level = encrypt
smtpd_tls_auth_only = yes
smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtpd_tls_protocols=!SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtpd_tls_loglevel = 0
smtpd_tls_session_cache_database =
btree:/var/lib/postfix/smtpd_tls_session_cache
# TLS configuration ends here