自制Pop3郵件接收系統(二):利用TcpClient得到Pop3的郵件列表資料 (轉)
Pop3接收資料,參見
alliance.com/chrisg/default.asp?article=93">
改成程式碼,並修改了一些
如
1.用的是ASCII,並不適合國內的讀取
解決方法:改為Encoding.GetEncoding(936)
2.GetResponse並不是堵塞方式,沒有完全資料
解決方法:設定一個strEnd標誌,來判斷是否結束
3.GetResponse每次都要返回ReceiveBufferSize長的資料
解決方法:根據接收到資料長度,返回緩衝中的對應長度的資料
等等..
System.Sockets.TcpClient tcpC;
System.Net.Sockets.NetworkStream netStream;
string SendCommand(string sToSend){
byte[] bData=Encoding.GetEncoding(936).GetBytes(sToSend+Environment.NewLine);
netStream.Write(bData,0,bData.Length);
return GetResponse();
}
string GetResponse(){
byte[] bData=new byte[tcpC.ReceiveBufferSize];
int iRec=netStream.Read(bData, 0, bData.Length);
return Encoding.GetEncoding(936).GetString(bData,0,iRec);
}
string Read(string ps,string un,string pw){
tcpC=new System.Net.Sockets.TcpClient(ps,110);
netStream = tcpC.GetStream();
string strResponse=GetResponse();
string strNL=Environment.NewLine;
string strEnd=strNL+"."+strNL+"+OK "+strNL;
SendCommand("user "+un);
SendCommand("pass "+pw);
strResponse=SendCommand("stat");
int iCount=Int32.Parse(strResponse.Split()[1]);
Response.Write(iCount + " Messages");
for(int i=1;i
while(!strResponse.EndsWith(strEnd))strResponse+=GetResponse();
tcpC.Close();
return strResponse;
}
方法:
ReadMail(pop3Server,username,pass)
ps.簡化了程式碼,取消了一些異常的捕捉,是為了讓大家看得清楚明白.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-977249/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 郵件協議之POP3的講解協議
- Python使用POP3和SMTP協議收發郵件Python協議
- win10系統中自帶郵件如何設定接收網易郵箱郵件Win10
- POP3協議(電子郵件郵局協議)中UIDL和TOP命令在實際使用中的作用協議UI
- swoole 郵件系統
- 利用Oracle資料庫傳送郵件Oracle資料庫
- python接收郵件的幾種方式Python
- 為什麼郵件系統不能用來大量傳送郵件
- shell -5 告警系統郵件
- .net 獲取郵箱郵件列表和內容
- 郵件營銷用純文字郵件還是html郵件HTML
- iOS12系統應用傳送普通郵件構建郵件iOS
- CACTER郵件安全共建網路安全315:保護郵件系統,從處理emotet病毒郵件開始!
- python中使用poplib模組接收郵件Python
- python實現郵件接收、附件下載Python
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- SpringBoot傳送郵件(二)Spring Boot
- 高校郵件系統配置相關
- Laravel 郵件推送系統異常Laravel
- 利用godaddy的cpanel郵箱伺服器的smtp發郵件Go伺服器
- SAP Connection inbound郵件接收處理機制
- 告警系統郵件引擎 執行告警系統
- CACTER郵件安全閘道器安全解決方案——保障企業郵件系統安全
- 2021上半年全球郵件中垃圾郵件份額(附原資料表)
- 郵件的傳送
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- Outlook如果有多個郵箱,個別郵箱設定不接收郵件的設定方法
- PbootCMS郵件配置修改發件人資訊boot
- 一次性解決python smtp 傳送outlook郵件,163郵件,qq郵件等等.Python
- win10系統下郵件客戶端無法讀取qq郵件如何解決Win10客戶端
- win10系統下outlook收到郵件後自動刪除郵件怎麼解決Win10
- Laravel 郵件配置Laravel
- 郵件傳送
- 群發郵件
- 傳送郵件
- linux 發郵件Linux
- 電子郵件
- win10自帶郵件系統繫結企業郵箱的方法Win10
- 電子郵件協議及GO傳送QQ郵件協議Go