我是一个托管代码人,所以当我与非托管代码互操作,并且它不像宣传的那样工作时,我会感到抽搐。当命令行 nslookup 有效时,有人可以向我解释为什么在没有MX记录的情况下会出现这种情况吗?

[DllImport("dnsapi", EntryPoint = "DnsQuery_W", CharSet = CharSet.Unicode, SetLastError = true, ExactSpelling = true)]
private static extern int DnsQuery([MarshalAs(UnmanagedType.VBByRefStr)]ref string pszName, QueryTypes wType, QueryOptions options, int aipServers, ref IntPtr ppQueryResults, int pReserved);

string domain = "HomeTechnologySolutions.com";
int num1 = DnsQuery(ref domain, QueryTypes.DNS_TYPE_MX, QueryOptions.DNS_QUERY_BYPASS_CACHE, 0, ref ptr1, 0);
if (num1 != 0)
{
    throw new Win32Exception(num1)
}

返回的错误代码表示“找不到给定DNS查询的记录”

裤子的一脚是这是我发现的第一个未通过此测试的域名,但我被告知它发生在“OFTEN”上。 (没有人可以经常为我定义,但我正在努力)

无论如何,当我通过命令提示符执行nslookup时,我会回来:

> set type=mx
> hometechnologysolutions.com
Server:  dhcp.removedtoprotectedtheguilty.com
Address:  10.0.0.9

hometechnologysolutions.com
        primary name server = ns1.streetsimple.com
        responsible mail addr = hostmaster.streetsimple.com
        serial  = 11
        refresh = 900 (15 mins)
        retry   = 600 (10 mins)
        expire  = 86400 (1 day)
        default TTL = 3600 (1 hour)
有帮助吗?

解决方案

从这里使用'dig'时,我没有为该特定域名返回任何 MX 记录。

“nslookup”结果是您从域的 SOA 记录中引用的,并且不包含任何 MX 记录。 SOA 记录在“权限”中返回。即使您询问的具体问题没有记录,也会显示DNS响应部分。

如果没有 MX 记录,邮件传输代理(MTA)会将主机的 A 记录视为 MX 记录,优先级为0并尝试与该地址建立SMTP连接。

请参阅 RFC 5321 的第5.1节。请注意,虽然这是最近的RFC,但此行为也存在于以前版本的SMTP规范中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top