【问题标题】:Configure SPF, MX and Postfix for sending email from SMTP relay配置 SPF、MX 和 Postfix 以从 SMTP 中继发送电子邮件
【发布时间】:2016-09-17 18:00:30
【问题描述】:

在搜索了一段时间并阅读了 Google 和 Stackoverflow 上的大量示例、案例和/或答案后,我没有找到解决问题的方法。我越来越对 SPF 和中继的概念感到困惑,所以我在这里提出我的问题,希望得到正确的答案并永远理解一次!

总结:

  • 我有一个当前主服务器,上面安装了邮件服务器(postfix + dovecot + vimbadmin),位于域 exampleA.com。
  • 我有一个用于新网站的新服务器,新域为 exampleB.com。

我的目标是新网站 (XXXX[AT]exampleB.com) 的所有电子邮件都必须使用主服务器发送和接收。

知道主服务器必须发送 exampleB.com 的电子邮件,我修改了 exampleB.com 的 SPF 条目,以允许主服务器发送 exampleB.com 的电子邮件。

邮件发送正常,我收到邮件正常,但是当我在 Gmail 中查看电子邮件的原始来源时:

Return-Path: <root@FQDN_NEW_SERVER>
Received: from mail.exampleA.com (FQDN_MAIN_SERVER [IP_MAIN_SERVER])
        by mx.google.com with ESMTPS id f64si6392532wma.52.2016.05.20.04.59.06
        for <xxxxxxx@gmail.com>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Fri, 20 May 2016 04:59:06 -0700 (PDT)
Received-SPF: neutral (google.com: IP_MAIN_SERVER is neither permitted nor denied by best guess record for domain of root@FQDN NEW SERVER) client-ip=IP MAIN SERVER;
Authentication-Results: mx.google.com;
       spf=neutral (google.com: IP MAIN SERVER is neither permitted nor denied by best guess record for domain of root@FQDN NEW SERVER) smtp.mailfrom=root@IP MAIN SERVER
Received: from FQDN NEW SERVER (REVERSEDNS_NEW_SERVER [IP_NEW_SERVER])
    by mail.exampleA.com (Postfix) with ESMTPA id 67C8C60421;
    Fri, 20 May 2016 13:59:06 +0200 (CEST)
Received: by FQDN_NEW_SERVER (Postfix, from userid 0)
    id A1949A07AB; Fri, 20 May 2016 13:58:57 +0200 (CEST)

我越来越困惑我必须修改哪个 SPF,以及哪个 MX 指向谁..

编辑:当我的主服务器尝试连接到端口 25 上的新服务器时,我的连接似乎超时,但使用 telnet 似乎没问题..

Edit2:我知道我的 DNS 和我的反向 DNS 不一样。我的服务器是公共云中的一个实例,我无法更改我的反向,因为它是在虚拟路由器中配置的。

Edit3:我在主服务器后缀日志中有这个错误:

May 20 16:25:40 ns33rgdrg4 postfix/smtpd[2956]: NOQUEUE: reject_warning: RCPT from csikxdqzdqzdqzdqzdqzress.com[IP_NEW_SERV]: 450 4.1.7 <root@FQDN_NEW_SERVER>: Sender address rejected: unverified address: connect to FQDN_NEW_SERV[IP_NEW_SERV]:25: Connection timed out; from=<root@FQDN_NEW_SERV> to=<myownmail@owndomain.com> proto=ESMTP helo=<FQDN_NEW_SERV>

这是服务器的当前配置:

服务器主

Dovecot + Postfix configured  
Domain : exampleA.com  
DNS :

 - exampleA.com.        MX    mail.exampleA.com
 - mail.exampleA.com    A     IP_MAIN_SERVER
 - exampleA.com.        SPF   "v=spf1 a mx ptr include:spf4.newsletterpartner.net ~all"

新服务器

安装了postfix,正常为什么relayhost = mail.exampleA.com

Domain : exampleB.com  
DNS :

 - exampleB.com.        MX    mail.exampleA.com
 - exampleB.com.        SPF   "v=spf1 mx:mail.exampleA.com mx:exampleA.com include:mail.exampleA.com include:exampleA.com ~all"

我的新域的 MX 指向我的主服务器的 MX(我不知道这样做是否好)

这是新服务器 /etc/postfix/main.cf 的一部分:

myhostname = FQDN_NEW_SERVER
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +

relayhost = mail.exampleA.com
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =

我们可以看到新服务器的后缀中继主机指向我的主服务器的MX。

我不知道我的新服务器的 MX 是否必须指向自己(知道它自己的后缀配置了中继主机),或者是否必须直接将其配置到将发送电子邮件的主服务器。

注意:当我查看寻找 MX 和 SPF 的网站时,我遇到此错误:No SPF records found for mail.exampleA.com,但 exampleA.com 有 MX,而不是 mail.exampleA.com

这几天让我发疯......提前感谢你们的小帮助:)

问候,
朱利安 Q。

【问题讨论】:

    标签: email dns postfix-mta spf dovecot


    【解决方案1】:

    好的,感谢@henry,我想它终于解决了!

    在文件 /etc/postfix/main.cf 中,myorigin 是 /etc/mailname,这是我的 FQDN。
    正如他所说,由于谷歌正在检查“root@FQDN_NEW_SERVER 域的记录”,我虽然他必须检查 root@DOMAIN,而不是 FQDN。 Google 还说“IP_MAIN_SERVER 既不允许也不被访客拒绝”,所以我没有将 MX 主服务器放在我的新服务器 SPF 中,而是将主服务器 IP 放在 IPV4 中。

    我将 myorigin 从 FQDN_NEW_SERVER 改为 DOMAIN_NEW_SERVER,并在我的新服务器 SPF 中指定了我的中继主机 IPV4。在检查了您的方法和 gmail 后,现在一切正常!

    这是我的基础架构的最终配置。

    主服务器,中继 SMTP

    Dovecot + Postfix configured  
    Domain : exampleA.com  
    DNS :
    
     - exampleA.com.        MX    mail.exampleA.com
     - mail.exampleA.com    A     IP_MAIN_SERVER
     - exampleA.com.        SPF   "v=spf1 a mx ptr include:spf4.newsletterpartner.net ~all"
    

    新服务器,将邮件转发到主服务器

    Domain : exampleB.com  
    DNS :
    
    - exampleB.com.        MX    mail.exampleA.com
    - exampleB.com.        SPF   "v=spf1 ip4:IP_MAIN_SERVER -all"
    

    新服务器 /etc/postfix/main.cf

    myhostname = FQDN_NEW_SERVER
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    #myorigin = /etc/mailname <-- OLD CONF with FQDN_NEW_SERVER in
    myorigin = exampleB.com
    mydestination =
    mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
    mailbox_command = procmail -a "$EXTENSION"
    mailbox_size_limit = 0
    recipient_delimiter = +
    
    relayhost = mail.exampleA.com
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_sasl_security_options =
    

    Gmail 原始来源

    Received: from MX_MAIN_SERVER (FQDN_MAIN_SERVER [IP_MAIN_SERVER])
        by mx.google.com with ESMTPS id s5si18916426wme.105.2016.05.16.02.06.09
        for <FROM_EMAIL_ADDRESS>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Mon, 16 May 2016 02:06:09 -0700 (PDT)
    Received-SPF: pass (google.com: domain of RECEIVER_EMAIL_ADDRESS designates IP_MAIN_SERVER as permitted sender) client-ip=IP_MAIN_SERVER;
    Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of RECEIVER_EMAIL_ADDRESS designates IP_MAIN_SERVER as permitted sender) smtp.mailfrom=FROM_EMAIL_ADDRESS
    

    希望它可以帮助我以外的其他人。
    再次感谢大家!

    朱利安 Q.

    【讨论】:

      【解决方案2】:

      我想你打错字了,请你确认一下..

       Domain : exampleB.com  
       DNS :
      
       - exampleB.com.        MX    mail.exampleA.com
       - exampleA.com.        SPF   "v=spf1 mx:mail.exampleA.com mx:exampleA.com include:mail.exampleA.com include:exampleA.com ~all"
      

      在底部,我认为是 ExampleA.com。应该阅读 ExampleB.com。

      你的 SPF 记录应该是

      "v=spf1 mx ~all"
      

      由于您的 MX 记录是 mail.exampleA.com,这就是您必须在 SPF 中指定的全部内容。

      我认为您的超时问题可能与 DoveCot 有关,DoveCot 的连接时间较长,超过 18 秒。我不是 linux 人,所以我真的无法指出在哪里寻找超时设置。

      您可以通过向mailtest@unlockthienbox.com 发送电子邮件来测试,而不是使用 gmail 进行测试,所有基本身份验证结果都会显示(SPF、DKIM 等)

      【讨论】:

      • 感谢@henry 指出这一点。你是对的,我刚刚编辑了我的主要帖子。我将检查 DoveCot 配置并按照建议发送电子邮件至 mailtest@unlockthienbox.com 测试所有内容。我带着结果回来了!
      猜你喜欢
      • 2016-08-02
      • 1970-01-01
      • 2021-11-23
      • 2019-12-01
      • 1970-01-01
      • 2018-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多