检查域上的SPF记录有哪些方法?

有一个网站,我可以在其中手动使用-http://www.mxtoolbox.com/SuperTool.aspx

我如何通过ASP.NET和C#做到这一点?基本上,我想验证/检查域上的SPF记录(如果它支持自己的邮件Web服务器)。

最佳答案

我有同样的问题,设法找到了两个三个解决方案:
nslookup解决方案

您可以通过在命令行中键入以下命令来获得SPF:

nslookup -type=TXT <hostname>

您可以使用 System.Diagonstics.Process 中的this blog post在C#中自动执行此操作。

DNS.NET解析器项目

我发现有关DNS解析的this CodeProject article。它带有演示项目。我运行了该项目,并为stackexchange.com得到了以下结果:

注意:在按下“发送”按钮之前,请确保将QType字段设置为TXT。

黄色突出显示的部分代表SPF记录。我尚未深入研究代码以了解其完成方式,但这似乎是上述nslookup解决方案的不错选择。

[更新] ARSoft.Tools.Net项目

如果您需要做的只是检查域是否支持邮件服务器,则可以使用ARSoft.Tools.Net库(也可以作为NuGet Package使用)。

安装软件包后,我设法使用以下代码执行SPF检查:

var spfValidator = new ARSoft.Tools.Net.Spf.SpfValidator();

var mailIpAddress = IPAddress.Parse("X.X.X.X");
var domain = "example.com";
var senderAddress = "[email protected]";

ARSoft.Tools.Net.Spf.SpfQualifier result =
    spfValidator.CheckHost(mailIpAddress, domain, senderAddress);

关于c# - 从域中获取SPF记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11846705/

10-09 22:05