провал теста DNS на правильном DNS asp.net - PullRequest
3 голосов
/ 13 мая 2011

Привет Я делаю тест DNS перед отправкой почты, чтобы убедиться, что я не получаю ошибки. Но есть проблема, когда я пытаюсь отправить электронное письмо на адрес xxxxx@eco-log.se я получаю ошибку от функции DNS. когда я пытаюсь удалить "-" в почтовом адресе, это работает.

сначала я сказал, что это из-за "-", но я сделал электронное письмо на zzzzzz@eh-design.se и это работает как шарм, в чем может быть проблема тогда? На 100% уверен, что «xxxxx@eco-log.se» - это существующий email / dns. Я получаю сообщение об ошибке «Нет такого известного источника» (свободно переведено)

Вот код проверки DNS:

Public Function testDNS(ByVal dnsstring As String) As Boolean
    Dim email As String = dnsstring
    Dim host As String() = email.Split("@")
    Dim hostName As String = host(1)
    Dim socket As Net.Sockets.Socket
    Try
        Dim entry As IPHostEntry = Dns.GetHostEntry(hostName)
        Dim endPoint As New IPEndPoint(entry.AddressList(0), 25)
        socket = New Sockets.Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp)
        Return True
        socket.Connect(endPoint)
    Catch se As SocketException
        Try
            Return False
        Catch ex As Exception
        End Try
    End Try
End Function

Ответы [ 2 ]

0 голосов
/ 01 августа 2011

Похоже, вы пытаетесь разрешить только запись A (адрес) для домена 'eco-log.se'

Dim entry As IPHostEntry = Dns.GetHostEntry(hostName)

Но для этого домена не настроена запись A, присутствует только Google MX:

$ host eco-log.se
eco-log.se mail is handled by 10 aspmx.l.google.com.
eco-log.se mail is handled by 20 alt1.aspmx.l.google.com.
eco-log.se mail is handled by 20 alt2.aspmx.l.google.com.
eco-log.se mail is handled by 30 aspmx2.googlemail.com.
eco-log.se mail is handled by 30 aspmx3.googlemail.com.
eco-log.se mail is handled by 30 aspmx4.googlemail.com.
eco-log.se mail is handled by 30 aspmx5.googlemail.com.

Причина, по которой ecolog.se и eh-design.se работают, заключается в том, что для обоих доменов настроены записи A:

$ host ecolog.se  
ecolog.se has address 213.188.129.183
$ host eh-design.se
eh-design.se has address 212.97.133.22
eh-design.se mail is handled by 10 mail4.surftown.se.

По умолчанию вы должны использовать серверы, перечисленные в записях MX, для отправки почты и использовать только записи A, если записи MX не настроены, а не наоборот.

0 голосов
/ 16 июня 2011

Я полагаю, что проблема, с которой вы здесь сталкиваетесь, - это два предположения.Это:

  1. Что существует запись DNS для domain.se .Существует много доменов, в которых есть записи, например www.domain.se, но не domain.se
  2. . Если этот хост (запись) существует, то есть почтовый сервер прослушивает порт 25.

Поскольку почтовый сервер может находиться на совершенно другом имени хоста, существуют записи DNS, называемые MX или Mail eXchange.Они указывают на то, где на самом деле находится почтовый сервер.К сожалению, если вы не используете сторонний элемент управления или некоторые более сложные вызовы .net, я не уверен, что вы можете указать, какой тип записей DNS возвращать (пожалуйста, прокомментируйте это, если я ошибаюсь :)).

Естькомпоненты, которые вы можете получить, которые будут проверять все эти виды вещей и многое другое, например.http://www.dart.com/ptmlvnet_overview.aspx. Я не использовал этот конкретный элемент управления, но он попытается подключиться к почтовому серверу и прекратит посылку электронной почты, чтобы увидеть, сообщает ли удаленный сервер, что адрес электронной почты недействителен или не существует.Я видел других, которые будут пытаться гуглить или проверять "Компонент проверки адреса электронной почты .net".

Надеюсь, это поможет объяснить, почему у вас возникли проблемы.

Джонатан

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...