La consulta de registro MX falla
Pregunta
Soy un tipo de código administrado, así que cuando interoplo con un código no administrado, y no funciona como se anuncia, me pongo nervioso. ¿Puede alguien explicarme por qué esto volvería sin registros MX, cuando funciona una línea de comando nslookup
?
[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)
}
El código de error que aparece significa "No se encontraron registros para una consulta de DNS dada"
La patada en el pantalón es que este es el primer dominio que he encontrado que falla esta prueba, pero me han dicho que sucede "OFTEN". (nadie puede definirme a menudo todavía, pero estoy trabajando en eso)
De todos modos, cuando realizo un nslookup a través del símbolo del sistema, vuelvo:
> 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)
Solución
No obtengo ningún registro de MX
para ese nombre de dominio en particular al usar 'excavar' desde aquí tampoco.
Los resultados de 'nslookup' que está citando son del registro SOA
del dominio y no incluyen ningún registro MX
. El registro SOA
se devuelve en la " authority " Sección de la respuesta del DNS, incluso si no hay registros para la pregunta específica que realizó.
En ausencia de registros MX
, los agentes de transferencia de correo (MTA) tratarán el registro A
para el host como un registro MX
con prioridad 0 e intenta hacer una conexión SMTP a esa dirección en su lugar.
Consulte la sección 5.1 de RFC 5321 . Tenga en cuenta que aunque este es un RFC muy reciente, este comportamiento también existía en versiones anteriores de la especificación SMTP.