【发布时间】:2016-12-07 22:08:26
【问题描述】:
例如,我有一个包含此 ips 的数组,并想用我的代码创建一个长 spf 记录:
$array_ips = array();
$array_ips[] = "32.16.8.133";
$array_ips[] = "32.16.4.247";
$array_ips[] = "35.16.8.184";
$array_ips[] = "32.16.8.127";
$array_ips[] = "32.16.8.134";
$array_ips[] = "32.16.2.154";
$array_ips[] = "32.16.2.153";
$array_ips[] = "32.16.2.150";
$array_ips[] = "39.16.2.190";
$array_ips[] = "32.16.2.128";
$array_ips[] = "32.16.0.128";
$array_ips[] = "32.16.8.187";
$array_ips[] = "43.16.8.185";
$array_ips[] = "32.16.8.192";
$array_ips[] = "32.16.4.249";
$array_ips[] = "52.16.4.252";
$array_ips[] = "32.16.4.238";
$array_ips[] = "32.16.4.232";
$ips = implode(' ip4:', $array_ips);
echo "v=spf1 +a +mx".$ips." -all";
spf 记录为:
v=spf1 +a +mx ip4:32.16.8.133 ip4:32.16.4.247 ip4:32.16.8.184 ip4:32.16.8.127 ip4:32.16.8.134 ip4:32.16.2.154 ip4:32.16.2.153 ip4:32.16.2.150 ip4:32.16.2.190 ip4:32.16.2.128 ip4:32.16.0.128 ip4:32.16.8.187 ip4:32.16.8.185 ip4:32.16.8.192 ip4:32.16.4.249 ip4:32.16.4.252 ip4:32.16.4.238 ip4:32.16.4.232 -all
字符:307
问题是,SPF 只能是最大值。 255 个字符长。不可能在 txt dns 记录中的 plesk 或 cpanel 中添加这么长的字符串。我听说如果可以这样做"v=spf1 .... first" "spf second string..."。
但它真的有效吗? 如何通过在我上面的示例中生成它来做到这一点?
【问题讨论】:
-
你可以添加多条记录
-
@Dagon 你是什么意思?
-
@Dagon 多条记录???
-
不,我错了,这是不允许的
-
Kitson88 有一个很好的答案,但你可以再保存几个字符;
+是默认操作,因此您可以从a和mx子句中删除它们。另请注意,如果您还使用 DKIM 签名,则 SPF 不需要那么准确(例如,您可以使用32.16.0.0/20来表示您的范围而不会暴露太多)。
标签: php arrays dns implode spf