Проверка MX для почты

Я пытаюсь использовать эту dll: http://www.eggheadcafe.com/articles/20050129.asp но не работает. я всегда получаю тайм-аут при запуске. Кто-нибудь знает хороший пример dll или С#, как проверить, существует ли DNS MX для почты?

код:

private static bool CheckDnsEntry(string domain)
        {
            string[] dnsServer = DnsMx.GetMXRecords(domain);
            if (dnsServer.Length > 0)
            {
                return true;
            }

            return false;
        }


string[] emailparts = email.Split('@');
if (CheckDnsEntry(emailparts[1]))...

ОШИБКА:

Server Error in '/' Application.
Connection timeout
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.ComponentModel.Win32Exception: Connection timeout

Source Error:

Line 462:        private static bool CheckDnsEntry(string domain)
Line 463:        {
Line 464:            string[] dnsServer = DnsMx.GetMXRecords(domain);
Line 465:            if (dnsServer.Length > 0)
Line 466:            {

person senzacionale    schedule 16.10.2011    source источник
comment
Не могли бы вы опубликовать свой код вызова и стек вызовов исключения?   -  person Uwe Keim    schedule 16.10.2011
comment
Возможно, ваш брандмауэр блокирует доступ к DNS?   -  person Uwe Keim    schedule 16.10.2011
comment
См. stackoverflow.com/questions/2366734/   -  person TFD    schedule 17.10.2011


Ответы (1)


Для этого вы должны использовать какой-нибудь управляемый DNS-клиент.

Также при проверке записи MX... MX является необязательной записью в соответствии со стандартом SMTP. Если записи MX нет, вместо нее используется запись A. (Возможно, вы это знаете, но на случай, если я это записал)

Существует пример dnsquery.zip, который показывает, как запрашивать разные записи: http://www.lumisoft.ee/lsWWW/download/downloads/Examples/

person Ivar    schedule 17.10.2011