在搜索了一段时间并在Google和Stackoverflow上阅读了大量示例,案例和/或答案后,我找不到解决问题的方法。我越来越对SPF和继电器的概念感到困惑,所以我在这里问我的问题,希望得到一个正确的答案并永远理解!
总结:
我的目标是必须发送新网站(XXXX [AT] exampleB.com)的所有电子邮件。使用主服务器收到。
知道mainserver必须发送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 =
我们可以看到新服务器的postfix relayhost指向我的主服务器的MX。
我不知道我的新服务器的MX是否必须指向自己(知道它自己的postfix配置了中继主机),或者是否必须直接配置到将发送电子邮件的主服务器。
注意:我有一个错误:No SPF records found for mail.exampleA.com
当我查询网站寻找MX和SPF时,但是exampleA.com有一个MX,而不是mail.exampleA.com
这让我疯狂了好几天......先谢谢你的小帮助家伙:)。
的问候,
朱利安Q。
答案 0 :(得分:3)
好的,我觉得你终于解决了@henry!
在文件/etc/postfix/main.cf中,myorigin
是/ etc / mailname,这是我的FQDN。
正如他所说,谷歌正在检查“root @FQDN_NEW_SERVER域名记录”,但我必须检查root @ DOMAIN,而不是FQDN。谷歌还说“客人既不允许也不拒绝IP_MAIN_SERVER”,所以我没有将MX主服务器放在我的新服务器SPF中,而是将主服务器IP放在IPV4中。
我将myorigin
从FQDN_NEW_SERVER更改为DOMAIN_NEW_SERVER,并在我的新服务器SPF中指定了我的relayhost IPV4。用你的方法和gmail检查后,现在一切都好了!
所以这是我的基础设施的最终配置。
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"
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 =
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。答案 1 :(得分:0)
我认为你写了一个错字,请你确认..
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
发送电子邮件来测试所有基本身份验证结果(SPF,DKIM等),而不是使用gmail进行测试。