none
測試SMTP連線狀態 RRS feed

  • 問題

  • C#
    VS2008
    Mail Server 為Windows Server 2003

    各位前輩:

    我利用C#開發了一個寄送MAIL的程式
    已可正常運作

    因SMTP需驗證
    所以希望新增一防呆功能
    當使用者設定並儲存其帳密時
    能夠先行測試
    該使用者是否可以連線成功

    謝謝各位前輩的指導 ^^
    2009年3月4日 上午 08:15

解答

  • SmtpClient 只能直接送個假信。你若是不要送假信,只能乖乖念 RFC 文件,用 TcpClient 去登入測試,看傳回來的是否是 2 起頭的訊息代碼。
    • 已標示為解答 meganHsu 2009年3月5日 上午 03:07
    2009年3月4日 下午 01:15

所有回覆

  • SmtpClient 只能直接送個假信。你若是不要送假信,只能乖乖念 RFC 文件,用 TcpClient 去登入測試,看傳回來的是否是 2 起頭的訊息代碼。
    • 已標示為解答 meganHsu 2009年3月5日 上午 03:07
    2009年3月4日 下午 01:15
  • 前輩:

    剛看了一下有關於TcpClient的資料
    看不懂

    想請問
    如果是利用SmtpClient送假信
    不知那邊有相關的資訊可以參考

    謝謝前輩的指導
    2009年3月5日 上午 02:12
  • 假信就是指測試用信件 ...
    MVP 2009 (ASP.NET), MCPD: ASP.NET Developer 3.5, MCPD: Windows Developer 3.5, MCITP: Database Developer 2008, MCITP: Enterprise Administrator 不想被人認為是小白,就不要總是在做一堆會讓人認為是小白的事。
    2009年3月5日 上午 03:05
    版主
  • 謝謝二位前輩
    剛已經OK了
    2009年3月5日 上午 03:07
  • 小朱的意思是
    目前.Net提供的內建元件無法只針對認證部分作檢查,要取得一個認證錯誤的訊息一定要寄一封信件.
    如果認證過了此信就會寄出,沒過就會產生例外.
    所以簡單的方式是測試信件內容的收件者隨便打一個不存在的位置,內容主旨也隨意,用此信件作測試.

    當然這不是個好辦法(但非常簡單),更理想的做法就是自行撰寫Telnet程式與Mail Server溝通(SMTP是用Telnet通訊的),在RFC文件中有很詳細的說明如何與Mail Server溝通的一些規範,你的程式就可以用Telnet模式來達成認證成功與否.
    或許網路上已經有人做了類似功能的Library或元件,你可以搜尋看看,做此類元件並不是非常困難,但也需要一定程度的能力.
    2009年3月6日 上午 12:21