如何在 postfix 中配置 SMTPS(端口 465)?

如何在 postfix 中配置 SMTPS(端口 465)?

我通过取消注释 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

相关内容