您好 在发送邮件之前我做了一个dns测试,以确保我没有收到错误。 但是当我尝试向地址xxxxx@eco-log.se发送电子邮件时,有一个问题 我从dns函数得到一个错误。当我尝试删除邮件地址中的“ - ”时,它可以正常工作。
起初我认为这是因为“ - ”,但我发了一封电子邮件zzzzzz@eh-design.se 它就像一个魅力,那可能是什么问题呢? 100%确定“xxxxx@eco-log.se”是现有的电子邮件/密码。 我得到的错误信息是“没有这样的已知来源”(自由翻译)
继承人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
答案 0 :(得分:0)
我相信你面临的问题是2个假设。这些是:
由于邮件服务器可能位于完整的不同主机名上,因此存在名为 MX 或Mail eXchange的DNS记录。这些指向邮件服务器的实际位置。不幸的是,除非你使用第三方控件或一些更复杂的.net调用,我不确定你是否可以指定返回哪种类型的dns记录(如果我错了请评论:))。
有些组件可以检查所有这些类型的东西,例如。 http://www.dart.com/ptmlvnet_overview.aspx。我没有使用这个特定的控件,但这将尝试连接到邮件服务器并停止发送电子邮件,以查看远程服务器是否报告电子邮件地址是无效还是不存在。我已经看到了其他人,所以尝试谷歌搜索或绑定“电子邮件地址验证组件.net”。
我希望这有助于解释你遇到问题的原因。
乔纳森
答案 1 :(得分:0)
看起来你只想解决域名'eco-log.se'的A(地址)记录
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记录中列出的服务器发送邮件,如果没有配置MX记录,则只回退到A记录 - 而不是反过来。