检查域上的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/