La requête d'enregistrement MX échoue
Question
Je suis un gars du code géré, donc lorsque j'interopère avec du code non géré, et que cela ne fonctionne pas comme annoncé, je me sens nerveux. Quelqu'un peut-il m'expliquer pourquoi cela reviendrait sans enregistrement MX, lorsqu'une ligne de commande nslookup
fonctionne?
[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)
}
Le code d'erreur renvoyé signifie "Aucun enregistrement trouvé pour une requête DNS donnée"
.Le coup de pouce, c’est que c’est le premier domaine que j’ai découvert qui échoue à ce test, mais on me dit que cela se produit "OFTEN". (personne ne peut encore définir souvent pour moi, mais je travaille dessus)
Quoi qu’il en soit, lorsque je lance nslookup via l’invite de commande, je reviens:
> 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)
La solution
Je ne reçois aucun enregistrement MX
pour ce nom de domaine particulier lorsque vous utilisez "dig" à partir d'ici.
Les résultats 'nslookup' que vous citez sont tirés de l'enregistrement SOA
du domaine et n'incluent aucun enregistrement MX
. L’enregistrement SOA
est renvoyé dans l’enregistrement "autorité". section de la réponse DNS, même s’il n’ya pas d’enregistrement pour la question spécifique que vous avez posée.
En l'absence d'enregistrements MX
, les agents de transfert de courrier (MTA) traiteront l'enregistrement A
de l'hôte comme un enregistrement MX
avec priorité 0 et essayez d'établir une connexion SMTP avec cette adresse à la place.
Voir la section 5.1 de la RFC 5321 . Notez que bien qu’il s’agisse d’une RFC très récente, ce problème existait également dans les versions précédentes de la spécification SMTP.