利用OpenSmtp.Net發送需要smtp驗證的郵件

來源:互聯網
上載者:User
smtp

  1.引言

    下周,需要做一個寄送電子郵件的模組,磨刀不誤砍柴工,周末在家裡先做了一下測試,微軟在,net1.1中有System.Web.Mail空間,這個命名空間下可以發送不帶smtp驗證的電子郵件,不過現在網路上很少再有不需要smtp驗證的,所以這個命名空間下的類應該算是比較雞肋。 於是找到opensmtp.net這個開源項目,這個項目的admin是園子裡面的"我得女兒好漂亮",真誠感謝一下。

  2.本文宗旨

    本文並不是介紹openmail.net的使用方法,該開源項目是一個非常正規的項目,它自己具有詳細的文檔和使用方法。本文主要闡述再使用OpenMail或者.net 2.0裡面的SmtpClient的時候可能遇到的問題,這個問題跟你的運行環境有關係,如果你恰巧遇到這樣問題的時候,網上相關資料也比較少。我在下面就描述一下我遇到的問題以及歸納出來的解決辦法

  3、在使用OpenMail或者SmtpClient中可能遇到的問題

   1)在寄送電子郵件的時候,提示“您主機中的軟體放棄已經建立的串連”

    這個是我遇到的最為頭疼的問題,因為他昨天晚上調到12點,搞的我差點沒瘋掉。起初,我知道一定是防火牆引起的問題,但是我把本地Windows XP內建防火牆關閉之後,問題依舊。但是無論我是否關閉防火牆,outlook都能正常接收和寄送電子郵件,我用的是smtp.126.com,我直接telnet smtp.126.com 25或者在軟體中TcpClient client = new TcpClient("smtp.126.com",25);都提示無法串連。而outlook卻能發送郵件,我netstat -n ,本機與smtp.126.com 25連接埠的tcp串連在outlook寄送電子郵件的時候也建立了,但為什麼outlook能建立串連,我的軟體或者telnet為何不能?如何能讓我的軟體和telnet能串連smtp 伺服器的25連接埠?

  2)第一個問題著實讓我浪費了很多時間,而且浪費了n多腦細胞,不過還好終於解決了,第二個問題是在寄送電子郵件的時候,郵件的本文產生亂麻的問題,這個問題我看網上有人在問,不過很好解決。

  4.解決問題的步驟和方法,以及經驗教訓

   1)對於第一個問題,我的確犯了一個方向性的錯誤,那就是我關閉了本機防火牆之後,我錯誤的認為導致我不能正常串連smtp伺服器的原因在於smtp服務端的防火牆,而且我本地outlook能正常發送郵件極大的誤導了我的思路,我錯誤的任務,outlook能發送,那麼表示資料一定能從我本地出去。錯誤只能出現在服務端,我猜想可能outlook有特殊的技術能穿透smtp伺服器的防火牆,但是我查閱了穿透防火牆的技術,如果要防火牆,一般的做法是HttpChannel,其實http請求本身不能穿透防火牆,但是一般防火牆不阻止對80連接埠的串連,smtp.126.com的80連接埠確也是關閉的。這樣的思路導致我在錯誤的方向用了很多功。

  今天早晨起來,我決定換個思路看看,我把本地防火牆關掉,還是不行,後來我看到了我的macfee,是不是這廝搞得鬼那,我開啟virtusScan Console,o,my god,裡面的確有一項On-Delivery E-Mail  Scanner ,我關閉它,發現還是不行,我有點失望了,不過還不甘心,再找,終於又發現了,在Access Protection裡面,有一個ports to block,裡面有25連接埠,記錄檔儲存在"AccessProtectionLog.txt",開啟檔案後有許多失敗記錄,去掉25連接埠阻塞,禁止On-Delivery E-Mail  Scanner ,問題解決

  2) 對於第二個問題,只需要更改編碼就可以了,在openmail.net裡面設定MailMessage.CharSet,如果在中國,設定"gb2312"一般可以解決這個問題

  5.結論

   經過兩天的調試和思考,解決的不是一個很大的問題,但是我也從中獲得了一個教訓,思考問題,一定要靈活,不要太過於固定化,比如我錯誤的認為是對方防火牆的問題,而且這種思路被我錯位的堅持了很久,其實在我們不能很好的解決一個問題的時候,與其費勁腦筋,不如反過來想想。



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。