我一直在努力理解如何解决一个特殊的问题,设置不同的域名SPF。我试着搜索网页,但没有找到我要找的东西。
我的问题是,所有的电子邮件目前是发送到垃圾邮件框,当发送从我的网站。网站域为exampleshop.com。但是G套件的MX记录是在example.com上建立的,exampleshop.com上的电子邮件是从info@example.com发送的。
最初,我有以下SPF txt记录设置:"v=spf1 include:_spf.google.com ~all“。但后来我将其改为"v=spf1 include:_spf.google.com include:exampleshop.com ~all“,以包括从网站发送的内容。
但是当我使用MX工具箱时,我会得到一个错误。它说:“包含的域:exampleshop.com没有vaild记录”。这让我相信,我需要在exampleshop.com域上添加一个SPF txt记录。这是对的吗?如果是这样的话,我应该增加什么呢?
发布于 2020-10-17 12:10:17
我重读了你的问题,我看到你有两个不同的领域: example.com和exampleshop.com。来自example.com的电子邮件是从gmail的服务器和web服务器www.exampleshop.com发送的,因此example.com的SPF可以是:
example.com IN TXT "v=spf1 include:_spf.google.com a:www.exampleshop.com ~all"如果你像写"v=spf1 include:_spf.google.com include:exampleshop.com ~all"一样写SPF,你要对example.com电子邮件接收者说的是,这些邮件可能是由谷歌的SPF (include:_spf.google.com)和exampleshop.com SPF (include:exampleshop.com)授权的If发送的。为此,exampleshop.com必须有自己的防晒系数。例如:
example.com IN TXT "v=spf1 include:_spf.google.com include:exampleshop.com ~all"
exampleshop.com IN TXT "v=spf1 a ~all"你可以用这两个选项中的任何一个。
发布于 2020-10-09 11:59:59
当您在SPF中使用包含指令时,您正在告诉接收者邮件服务器检查SPF策略。例如,如果您的域名是example.com,而您的SPF是这样的:v=spf1 include:_spf.google.com ~all,当一个电子邮件服务器收到来自example.com的电子邮件时,它会向DNS服务器请求example.com的SPF并得到v=spf1 include:_spf.google.com ~all。然后它将寻找_spf.google.com的SPF值,即:
v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all邮件服务器递归地查找所有包含指令。最后,其中一些政策必须包括一些ips:
v=spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all所以在你的情况下,你的SPF注册应该是这样的:
v=spf1 include:_spf.google.com mx a ip4:10.0.0.1 ~allmx选项允许example.com MX寄存器发送电子邮件,a选项对example.com的ip做同样的事情,最后,ip4允许分配特定的ip来为您的域发送电子邮件。
致以敬意,
发布于 2020-10-17 11:56:59
在我的回答中,我猜想exampleshop.com和www.exampleshop.com都有相同的IP,尽管这不可能是真的。
让我给你举个例子。假设您有域exampleshop.com,它使用Gmail的电子邮件服务器,但也从web服务器发送电子邮件。DNS寄存器可以是这样的:
exampleshop.com A -> 192.168.1.1
www.exampleshop.com A -> 192.168.1.2
exampleshop.com MX -> gmail's servers
exampleshop.com MX -> another server (optional)如果我们希望允许gmail的服务器和www.exampleshop.com从我们的域(exampleshop.com)发送电子邮件,SPF可能就是其中任何一个:
v=spf1 include:_spf.google.com ip4:192.168.1.2 ~all
v=spf1 include:_spf.google.com a:www.exampleshop.com ~all如果exampleshop.com和www.exampleshop.com具有相同的IP (例如,192.168.1.1),那么您可以这样编写SPF:
v=spf1 include:_spf.google.com a ~all上面一行中的"a“表示允许SPF域的IP (exampleshop.com = 192.168.1.1)为该域发送电子邮件。如果过了一段时间,您更改了exampleshop.com的IP,您将不必编辑SPF,因为电子邮件的接收方将解析exampleshop.com的新IP。
当然,您也可以将"a“和"ip4”选项添加到SPF中:
v=spf1 include:_spf.google.com ip4:192.168.1.2 a ~all
v=spf1 include:_spf.google.com a:www.exampleshop.com a ~all该SPF允许Gmail的服务器、IP 192.168.1.2和域IP (exampleshop.com)使用@exampleshop.com发送电子邮件。
最后,还可以将MX (邮件交换)选项添加到SPF中:
v=spf1 include:_spf.google.com ip4:192.168.1.2 a mx ~allMX选项告诉来自@exampleshop.com的电子邮件接收者,在DNS配置中声明的每个服务器都可以发送电子邮件。
SPF中的MX和A选项类似于“别名”,这取决于DNS服务器的配置。
有很多方法来写SPF。检查这个:https://dmarcian.com/spf-syntax-table/
https://serverfault.com/questions/1037063
复制相似问题