自制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郵件接收系統(一):利用MatchEvaluator實現HZ的解碼 (轉)
- 利用W3 JMAIL元件收POP3郵件 (轉)AI元件
- 用 C++BUILDER 實現 POP3 電子郵件的接收 (轉)C++UI
- 郵件協議之POP3的講解協議
- 對POP3郵箱中的新郵件的判斷方法
- 郵件開發:POP3協議詳解協議
- 編寫基於的POP3的電子郵件程式 (轉)
- 郵件開發:接收解析郵件
- Python使用POP3和SMTP協議收發郵件Python協議
- C#通過POP3獲取郵件(正文和附件)C#
- JavaMail學習筆記(四)、使用POP3協議接收並解析電子郵件(全)JavaAI筆記協議
- win10系統中自帶郵件如何設定接收網易郵箱郵件Win10
- 使用python傳送郵件和接收郵件Python
- Java 實現郵件的接收Java
- 利用SQL Server發郵件 (轉)SQLServer
- swoole 郵件系統
- 利用SQL Server 2005資料庫郵件傳送電子郵件SQLServer資料庫
- 利用Oracle資料庫傳送郵件Oracle資料庫
- postfix郵件系統之郵件客戶端無法收郵件問題解析客戶端
- EMOS無法接收郵件
- Outlook和Outlook Express導致超時錯誤並且無法檢索POP3郵件 (轉)Express
- 企業郵件系統
- 構建全功能的郵件系統 (轉)
- POP3協議(電子郵件郵局協議)中UIDL和TOP命令在實際使用中的作用協議UI
- python接收郵件的幾種方式Python
- 為什麼郵件系統不能用來大量傳送郵件
- shell -5 告警系統郵件
- 郵件系統VPN搭建方案
- 簡單郵件系統程式
- 郵件系統之 SPF reject
- .net 獲取郵箱郵件列表和內容
- 郵件營銷用純文字郵件還是html郵件HTML
- 如何正確接收 GitHub 的訊息郵件Github
- iOS12系統應用傳送普通郵件構建郵件iOS
- 使用python傳送和接收郵件Python
- 利用命令列發郵件命令列
- 如何訂閱jakarta的郵件列表?
- linux mail利用外部郵箱地址發郵件LinuxAI