#asp.net #vb.net #dns
#asp.net #vb.net #dns
Вопрос:
Привет, я провожу dns-тест перед отправкой почты, чтобы убедиться, что я не получаю ошибок. Но возникает проблема, когда я пытаюсь отправить электронное письмо на адрес xxxxx@eco-log.se я получаю сообщение об ошибке от функции dns. когда я пытаюсь удалить «-» в почтовом адресе, это работает.
сначала я подумал, что это из-за «-«, но я отправил электронное письмо на zzzzzz@eh-design.se и это работает как шарм, в чем тогда может быть проблема? На 100% уверен, что «xxxxx@eco-log.se «это существующее электронное письмо / 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
Комментарии:
1. Вы пытаетесь установить соединение с сокетом на почтовом сервере получателя? Могло ли быть причиной проблемы что-то на другом конце, а не ваш код? Лично я бы получил IP (ы) записей из GetHostEntry и посмотрел, получил ли я ответ на ping, вместо того, чтобы идти до конца и пытаться установить соединение. Если вы точно не знаете, что на другом конце?!
2. Коды отлично работают, но только для этого конкретного dns… я не знаю почему… ВСЕ другие dns: es, которые я пробовал, сработали! :/
3. Используете ли вы какой-либо вид олицетворения или что-то подобное? Это в Active Directory или все компьютеры разрозненны? Есть ли разница в типах записей DNS для тех, которые работают, а не нет? en.wikipedia.org/wiki/List_of_DNS_record_types
Ответ №1:
Я полагаю, что проблема, с которой вы сталкиваетесь здесь, заключается в двух предположениях. Это:
- Что существует DNS-запись дляdomain.se. Есть много доменов, в которых есть записи, подобные www.domain.se но не domain.se
- Если этот хост (запись) существует, то почтовый сервер прослушивает порт 25.
Поскольку почтовый сервер может работать с совершенно другим именем хоста, существуют записи DNS, называемые MX или Mail eXchange. Они указывают на то, где на самом деле находится почтовый сервер. К сожалению, если вы не используете сторонний элемент управления или некоторые более сложные вызовы .net, я не уверен, можете ли вы указать, какой ТИП записей dns возвращать (пожалуйста, прокомментируйте это, если я ошибаюсь :)).
Есть компоненты, которые вы можете получить, которые будут проверять все подобные вещи и многое другое, например. http://www.dart.com/ptmlvnet_overview.aspx. Я не использовал этот конкретный элемент управления, но он попытается подключиться к почтовому серверу и остановит отправку электронного письма, чтобы проверить, сообщает ли удаленный сервер, что адрес электронной почты недействителен или не существует. Я видел другие, которые будут, поэтому попробуйте либо погуглить, либо отключить «Компонент проверки адреса электронной почты .net».
Я надеюсь, это поможет объяснить, почему у вас возникли проблемы.
Джонатан
Ответ №2:
Похоже, вы пытаетесь разрешить только запись A (ddr) для домена ‘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 работа заключается в том, что в обоих доменах настроены записи:
$ 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 не настроены, а не наоборот.