2011-05-13 67 views
3

嗨 我做了一個dns測試之前,我發送郵件,以確保我沒有得到錯誤。 但有一個問題,當我嘗試發送電子郵件到地址[email protected] 我從dns函數中得到一個錯誤。當我嘗試刪除郵件地址中的「 - 」時,它可以正常工作。dns測試失敗正確dns asp.net

起初我強調這是因爲「 - 」,但我發了一封電子郵件到[email protected] ,它的作用像一個魅力,那麼可能是什麼問題呢? 100%肯定「[email protected]」是現有的電子郵件/ 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 
+0

您正試圖建立與收件人郵件服務器上套接字的連接?它可能是導致問題的另一端,而不是你的代碼?就我個人而言,我會從GetHostEntry獲取記錄的IP,並查看是否得到了ping響應,而不是一路走下去嘗試建立連接。除非你確切地知道在另一端有什麼? – 2011-05-13 17:29:56

+0

這些代碼工作的很好,但它只適用於這個指定的DNS ...我不知道爲什麼...所有其他的DNS:ES我已經嘗試過工作! :/ – Jimmy 2011-05-19 11:25:52

+0

你是否在使用任何形式的模仿或類似?它在Active Directory中還是所有的機器都不相同?那些工作的DNS記錄類型有沒有差別? http://en.wikipedia.org/wiki/List_of_DNS_record_types – 2011-05-19 13:24:14

回答

0

我相信你所面臨的問題就在這裏2個假設。它們是:

  1. 那裏有一個DNS記錄domain.se。有跡象表明,有一個像www.domain.se項,但不domain.se許多領域
  2. 應在此主機(項)存在有一個郵件服務器上的端口25

監聽由於郵件服務器可能位於完全不同的主機名上,其中有DNS記錄,稱爲MX或Mail eXchange。這些指向郵件服務器的實際位置。不幸的是,除非你使用第三方控件或一些更復雜的.net調用,我不確定你是否可以指定返回哪種類型的dns記錄(如果我錯了,請評論這個:))。

有些組件可以檢查所有這些類型的東西,比如。 http://www.dart.com/ptmlvnet_overview.aspx。我沒有使用這個特定的控件,但是它會嘗試連接到郵件服務器,並停止發送電子郵件,以查看遠程服務器是否報告電子郵件地址無效或不存在。我已經看到其他人會嘗試使用Google地址驗證組件「.net」。

我希望這有助於解釋爲什麼你有問題。

喬納森

0

它看起來像你只是試圖解決域「eco-log.se」

Dim entry As IPHostEntry = Dns.GetHostEntry(hostName) 

的A(ddress)的紀錄,但該域沒有一個A記錄配置,只有谷歌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工作是,這兩個領域有記錄configued:

$ 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記錄 - 而不是相反。