- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不确定在尝试合并 SPF 记录时应该使用什么限定符。
我知道 StackOverflow 上还有很多其他问题,关于什么组合 SPF 记录是正确的,但我找不到一个可以清楚地解释为什么当不同的建议有不同的限定符时应该使用某个限定符服务。
我目前的记录是这样的:
v=spf1 +a +mx +ip4:111.222.333.444 include:_spf.google.com ~all include:servers.mcsv.net ?all include:mailgun.org ~all
/p>
Google's SPF记录是:
include:_spf.google.com ~all
Mailchimp's SPF记录是:
include:servers.mcsv.net ?all
Mailgun's SPF记录是:
include:mailgun.org ~all
我应该如何决定使用什么限定词 +all
, -all
, ~all
和 ?all
?
下列哪一项是正确的?
v=spf1 +a +mx +ip4:111.222.333.444 include:_spf.google.com include:servers.mcsv.net include:mailgun.org ~all
v=spf1 +a +mx +ip4:111.222.333.444 include:_spf.google.com include:servers.mcsv.net include:mailgun.org ?all
v=spf1 +a +mx +ip4:111.222.333.444 include:_spf.google.com include:servers.mcsv.net include:mailgun.org +all
v=spf1 +a +mx +ip4:111.222.333.444 include:_spf.google.com include:servers.mcsv.net include:mailgun.org -all
同样的问题涉及 +a
和 +mx
的使用,我是否也需要包含它们?
我是否需要在 +a
、+mx
和 +ip4
之前包含 +
请记住,我们通过 Mailchimp、MailGun、Google 和服务器发送电子邮件。
最佳答案
您当前的记录没有意义。规则是从左到右评估的,因此您的默认 (all
) 机制应该始终放在最后。
当您include
外部 SPF 记录时,它包含的任何 all
操作都会被有效地忽略(因为它会被您以后的指令覆盖)。
MailChimp 的记录是愚蠢的(quelle surprise); ?all
相当于根本没有 SPF 记录,但在这种情况下没有区别。
文字 IP 机制是最快的,因为它们不需要 DNS 查找来检查,因此将它们放在第一位被认为是礼貌的做法。
您不需要在机制前面使用 +
,因为这是默认的限定符。
a
机制意味着“允许该主机的A
记录返回的IP”。类似地,mx
表示“允许从同时也是该域的邮件交换器(邮件服务器)的任何 IP 发送”。如果这些是真的,请添加它们。我建议将它们放在任何 include
机制之前,因为它们只需要一次 DNS 查找,而且它们很可能已经被接收者缓存了。
你不应该使用+all
;它非常糟糕,因为它给所有来源一个积极的 pass
结果,这比没有 SPF 记录更糟糕。 ?all
等同于没有 SPF,因此您也不应该使用它。
如果您还使用 DMARC,则应使用 ~all
;如果不是,请使用 -all
。这样做的原因是 SPF 规则在 DMARC 之前被评估,并且 -all
将导致在 DMARC 有机会做它的事情之前立即终止。然后可以将 DMARC 配置为拒绝任何获得 softfail
的内容,并且它的报告机制可以完成它们应该做的事情。
如果您使用的是 DMARC,我会推荐此记录,如果您不使用,则相同但 -all
:
v=spf1 ip4:111.222.333.444 a mx include:_spf.google.com include:servers.mcsv.net include:mailgun.org ~all
无论您最终得到什么,请查看 Scott Kitterman's validator .
关于dns - 组合多个 SPF 记录,如何决定应该使用什么限定符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53550374/
我一直在使用 OpenGL 编写程序。最近,我开始学习OpenGL着色语言。我是新手;因此,请在回答中详细说明。 我的问题是: GLSL 中有哪些不同类型的变量(限定符)? 它们的用途是什么? 它们有
这个问题在这里已经有了答案: typedef pointer const weirdness (6 个答案) 关闭 8 年前。 我有一个结构体 type_s。然后我将指向 struct type_s
我有一个 Point2D 类如下: class Point2D{ int x; int y; public: Point2D(int inX,
当应用于指向指针的指针等时,我在推断什么是 const 时遇到了一些麻烦。即,什么是 const 当你有 const Foo **foo; 我可以在这里更改 **foo 中的内容吗?如 foo[0]
限定符 有时候不知道要匹配多少字符。为了能适应这种不确定性,正则表达式支持限定符的概念。这些限定符可以指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。 下表给出了各种限定符及其含义的说
我有一个包含字符名称的数组结构。我想使用 qsort 按字母顺序对它们进行排序,但是我一直收到一条错误消息,说“初始化丢弃了指针目标类型中的‘const’限定符”。我相信我的 cmpmi() 函数和
我是 Java EE/JSF 的新手,现在阅读 CDI 限定符 - 更改类实现的可能性。这很好,但我有一个问题。据我了解,我可以使用限定符更改类实现,但我需要在使用此实现的任何地方更改它。在一个地方进
假设我有以下目录结构: $ mkdir -p a/1 $ ln -s a b 查找目录,我也得到了符号链接(symbolic link)中的目录: $ print -l */*(/) a/1 b/1
我正在尝试创建一个 const 结构数组,但我不断得到 error initializer element is not a compile time constant 我使用的是keil IDE。这
#include using namespace std; class Point { private: int x, y; // Private data members public:
我想使一个方法有条件地成为常量。也就是说,我们有 template class A { // stuff }; 根据模板参数的值,要么 void method() const; 或 void
由于 const int 特化导致以下错误: #include using std::cout; using std::endl; template void g(T val) { cou
同时适用于移动设备和平板电脑的 Titanium 项目,完美地完成了移动版本,但在平板设计时面临一些复杂性。 下面是 Titanium 支持的限定符矩阵,但我找不到任何针对 Android-Table
我正在研究 C++ 和 gtkmm,试图创建一个自定义类,它调用 .glade 文件来构建一个 Gtk 而不是基本的界面。此类派生自 Gtk::Window,但是当我调用类本身的 get_widget
我编写了以下代码来测试 const 成员函数:当我有数据成员的 const 限定符时,它编译并运行良好char *data 和构造函数的参数。但是,如果我从中删除 const数据成员和构造函数,我得到
您好,我正在使用 C++ 内置算法。我这里有这段代码: #include #include #include using namespace std; bool isDon(string& na
我的问题与 Time 项目有关,我将在下面完整发布该项目以提供背景信息。我所做的大部分都是正确的,但是当涉及到加法和减法运算符定义时,我遇到了范围界定错误的问题。编译器找不到我的私有(private)
我有以下代码- int acb(const uint16 *MsgPtr) { uint16 *p = (MsgPtr + 1); printf("%d", *p); } 我收到以下警告 - 在为 p
我在结构中有一个指向结构实例链表的指针字段。 struct myStruct { some fields... struct list_objects * volatile list;
所以我在维基百科的一篇文章(粗略翻译)中遇到了以下定义: Modifier (programming) - element of source code being a phrase of given
我是一名优秀的程序员,十分优秀!