使用C#進行E-Mail的收發操作

來源:互聯網
上載者:User

一、目標描述
發送要求: 
輸入:
1.對方E-Mail地址 
2.smtp伺服器位址 
3.username 
4.password 
5.郵件內文 
6.標題(可選) 
發送郵件內文。 
接收要求: 
輸入 :
1.pop3伺服器位址 
2.username 
3.password 
檢索郵件清單,內送郵件本文。
 二、問題描述
1. 如何用C#來發送郵件.
2. 如何用C#來實現基於POP3協議的郵件接收
三、解決方案
1. 郵件的發送
使用System.Net.Mail 命名空間中MailMessage 類和SmtpClient類發送郵件.此方法較簡單,不再鼇述.
2. 在郵件接收中
我主要用到了兩個類:TcpClient類和NetworkStream類。TcpClient類是運用C#進行網路編程的一個非常重要的類,它提供了通過網路連接、發送和接收資料的簡單方法,從而實現了網路編程的大大簡化。NetworkStream類實現通過網路通訊端發送和接收資料的標準.Net架構流機制,它支援對網路資料流的同步和非同步訪問,是實現網路通訊的重要組成部分
四、總結
  通過此次練習, 在基於POP3協議的郵件接收時的工作流程為:
在用戶端串連伺服器成功後,伺服器會返回以下資訊:+OK…… 字元+OK是POP3協議的返回資訊。它的回應資訊不像SMTP協議那樣用豐富多變的數字表示,只有兩個:+OK或者-ERR。其中,+OK表示串連成功,而-ERR則表示串連失敗。 
然後通過在用戶端輸入USER <使用者名稱> 該命令告訴伺服器你的使用者名稱。(註:有些伺服器會區分大小寫字母的)。 當伺服器返回+OK後,在用戶端再輸入PASS <口令> 伺服器返回+OK後,會返回一些郵箱的統計資訊,比如:+OK n message(s) [**** byte(s)] 不同的伺服器返回的資訊格式不太一樣,所以我們可以用STAT命令來查看郵箱的情況。STAT命令的回應中有兩個數字,分別表示郵件的數量和郵件的大小。 如果信箱裡有信,就可以用RETR命令來擷取郵件的本文。RETR命令的格式為: RETR <郵件編號> 如果返回結果第一行是+OK資訊,則表示成功。第二行起便是郵件的本文。最後一行和SMTP協議一樣,是一個單獨的英文句號,表示郵件的結尾部分,在讀取時使用Reader.ReadLine()來讀取,其中Reader為StringReader成員。 如果郵件通過POP3收取後可用DELE命令刪除郵箱中的郵件,否則你的郵箱就爆了。DELE命令的格式為: DELE <郵件編號> 如果刪錯了,可以用RSET命令來恢複所有已被刪除的郵件(前提時沒有退出系統)。所有操作完成後可通過輸入QUIT命令退出POP3伺服器了。 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/mengyao/archive/2007/08/16/1746533.aspx

相關文章

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.