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)
¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top