如何设置中继主机以使用 PostFIX 将电子邮件发送到其他外部 SMTP 服务器?

如何设置中继主机以使用 PostFIX 将电子邮件发送到其他外部 SMTP 服务器?

我目前正在 OCI 上配置 SMTP 服务器,但有些疑问。我想将带有我的域名的电子邮件发送到外部服务器,例如 GMAIL、OUTLOOK 等。

我已经使用我的域名和端口 587 配置了“中继主机”,但它开始请求 SASL 身份验证。因此,我将其删除并重试,我注意到它正在使用外部 GMAIL 服务器发送电子邮件。

这种情况下应该如何配置呢?

答案1

当您想向 Google 等发送邮件时,无需使用中继主机。

您需要您的 postfix 服务器配置仅发送的 mta,最好使用 smtp over tls。您可以使用 letsencrypt 进行 tls/ssl 部分

另请参阅此处获取一些指导 https://gist.github.com/lodi-g/9f89d102aa51e9e50da5d7954ddc5917

myhostname = hostname
    myorigin = domain 
    mydomain = domain 
    mydestination = $myhostname, localhost.$mydomain, localhost, example.com
    mynetworks = 127.0.0.0/8
    relay_domains = 
    relay_host =  
    smtpd_relay_restrictions = 
    permit_mynetworks 
    permit_sasl_authenticated 
    defer_unauth_destination


smtpd_tls_cert_file=/etc/letsencrypt/live/domain.nl/fullchain.pem
        smtpd_tls_key_file=/etc/letsencrypt/live/domain.nl/privkey.pem
        smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
        smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
        smtpd_tls_protocols = TLSv1.2, TLSv1.1, !TLSv1, !SSLv2, !SSLv3
        smtp_tls_protocols = TLSv1.2, TLSv1.1, !TLSv1, !SSLv2, !SSLv3
        smtp_tls_ciphers = high
        smtpd_tls_ciphers = high
        smtpd_tls_mandatory_protocols = TLSv1.2, TLSv1.1, !TLSv1, !SSLv2, !SSLv3
        smtp_tls_mandatory_protocols = TLSv1.2, TLSv1.1, !TLSv1, !SSLv2, !SSLv3
        smtp_tls_mandatory_ciphers = high
        smtpd_tls_mandatory_ciphers = high
        smtpd_tls_mandatory_exclude_ciphers = MD5, DES, ADH, RC4, PSD, SRP, 3DES, eNULL, aNULL
        smtpd_tls_exclude_ciphers = MD5, DES, ADH, RC4, PSD, SRP, 3DES, eNULL, aNULL
        smtp_tls_mandatory_exclude_ciphers = MD5, DES, ADH, RC4, PSD, SRP, 3DES, eNULL, aNULL
        smtp_tls_exclude_ciphers = MD5, DES, ADH, RC4, PSD, SRP, 3DES, eNULL, aNULL
        tls_preempt_cipherlist = yes
        smtpd_tls_security_level = may
        smtp_tls_security_level = may
        smtpd_tls_loglevel = 2
        smtp_tls_loglevel = 2
        smtpd_use_tls=yes

我假设你知道如何使用 letsencrypt 申请证书

如果您只想向某些域发送邮件,您可以在mydestination指令中进行配置,该指令用于指定通过邮件传递传输传递的域列表

相关内容