【问题标题】:dns test fail on correct dns asp.net正确的 dns asp.net 上的 dns 测试失败
【发布时间】: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

标签: asp.net vb.net dns


【解决方案1】:

我相信您在这里面临的问题是 2 个假设。它们是:

  1. domain.se 有 DNS 记录。有许多域有类似 www.domain.se 但没有 domain.se 的条目
  2. 如果此主机(条目)存在,则表示有邮件服务器在端口 25 上侦听。

由于邮件服务器可能存在于完全不同的主机名上,因此存在名为 MX 或 Mail eXchange 的 DNS 记录。这些指向邮件服务器的实际位置。不幸的是,除非您使用 3rd 方控件或更复杂的 .net 调用,否则我不确定您是否可以指定要返回的 dns 记录类型(如果我错了,请对此发表评论:))。

您可以获得一些组件来检查所有这些类型的事情以及更多,例如。 http://www.dart.com/ptmlvnet_overview.aspx。我没有使用这个特定的控件,但这将尝试连接到邮件服务器并停止发送电子邮件以查看远程服务器是否报告电子邮件地址无效或不存在。我见过其他人,所以尝试谷歌搜索或搜索“电子邮件地址验证组件 .net”。

我希望这有助于解释您遇到问题的原因。

乔纳森

【讨论】:

    【解决方案2】:

    您似乎只是在尝试解析域“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 记录 - 而不是相反。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-30
      • 2016-09-07
      • 1970-01-01
      • 1970-01-01
      • 2019-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多