【发布时间】:2011-05-13 14:15:15
【问题描述】:
嗨 我在发送邮件之前会进行 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
【问题讨论】:
-
您正在尝试与收件人邮件服务器上的套接字建立连接?可能是另一端导致问题的原因,而不是您的代码?就个人而言,我会从 GetHostEntry 获取记录的 IP,然后查看是否收到 ping 响应,而不是一路尝试建立连接。除非你确切地知道另一端是什么?!
-
代码效果很好,但它仅适用于这个特定的 dns...我不知道为什么...我尝试过的所有其他 dns:es 都有效! ://
-
您是否在使用任何类型的冒充或类似方式?它是在 Active Directory 中还是所有机器都不同?有效的 DNS 记录类型与无效的 DNS 记录类型是否存在差异? en.wikipedia.org/wiki/List_of_DNS_record_types