pop3流程
来源:互联网 发布:舞钢飞鸟淘宝客 编辑:程序博客网 时间:2024/04/26 21:59
一:客户端与POP3邮件服务器建立通信链接,并建立Socket的输入/输出数据流:
cs=new Socket(InetAddress.getByName(host),Integer.parseInt(port));
inData=new BufferedReader(new InputStreamReader(cs.getInputStream()));
outData=new BufferedWriter(new OutputStreamReader(cs.getOutputStream()));
二:处理用户身份验证:
msg=“USER“+user;
if(!POP3Request(msg))
return false;
if(!POP3Response())
return false;
msg=“PASS“+pass;
if(!POP3Request(msg))
return false;
if(!POP3Response())
return false;
三:处理邮件接收事务:
msg=“RETR“+mailNo;
if(!POP3Request(msg))
return false;
response=inData.readLine();
if(!response.startsWith("+OK")){
JOptionPane.showMessageDialog((Component)null,response,“POP3 Error“,JOptionPane.ERROR_MESSAGE);
return false;
}
else{
while(true){
response=inData.readLine();
if(response.trim().equals(““)&& !endofHeader){
endofHeader=true;
continue;
}
if(!endofHeader){
if(response.startsWith(“Date:“)){
date=response.substring(response.index(“:“)+2);
header=header+response+linesep;
}
if(response.startsWith(“From:“)){
from=response.substring(response.index(“:“)+2);
header=header+response+linesep;
}
if(response.startsWith(“Reply-To:“)){
header=header+response+linesep;
}
if(response.startsWith(“Subject:“)){
subject=response.substring(response.index(“:“)+2);
header=header+response+linesep;
}
if(response.startsWith(“To:“)){
if(to.equals(““))
to=response.substring(response.index(“:“)+2);
else
to=to+“,“+response.substring(response.index(“:“)+2);
header=header+response+linesep;
}
if(response.startsWith(“Receipients:“)){
if(to.equals(““))
to=response.substring(response.index(“:“)+2);
else
to=to+“,“+response.substring(response.index(“:“)+2);
header=header+response+linesep;
}
if(response.startsWith(“MIME-Version:“)){
header=header+response+linesep;
}
if(response.startsWith(“Content-Transfer-Encoding:“)){
header=header+response+linesep;
}
if(response.startsWith(“Content-Type:“)){
header=header+response+linesep;
}
if(response.startsWith(“Content-Description:“)){
header=header+response+linesep;
}
if(response.startsWith(“Message-ID:“)){
header=header+response+linesep;
}
}
else{
if(response.startsWith(“.“)){
content=content+response+linesep;
break;
}
content=content+response+linesep;
}
}
}
四:发送QUIT指令至服务器,关闭输入/输出数据流及Socket。
try{
if((outData!=null) && (inData!=null) && (cs!=null)){
msg=“QUIT“;
flag=POP3Request(msg);
flag=POP3Response();
}
if(outData!=null) outData.close();
if(inData!=null) inData.close();
if(cs!=null)cs.close();
}catch(IOException ex){}
System.exit(0);
- pop3流程
- POP3
- POP3
- POP3
- pop3
- Pop3
- 用PHP写的POP3电子邮件收取流程
- POP3协议
- pop3协议
- pop3命令
- POP3 学习
- POP3&SMTP
- Mail-POP3
- smtp pop3
- POP3 RFC
- POP3命令
- POP3协议
- SMPT,POP3
- 用C#代码动态改变页面样式
- VS.NET调试.NET出现的常见错误
- 突然觉得自己老了
- 蛙蛙推荐:通过注册表添加受信任站点
- ASP.NET Configuration
- pop3流程
- 将PB的交叉报表完整转换成EXCEL
- 如何配置和部署安全的.NET三层应用(摘)
- C# 爱好者
- 如何获取操作系统的语言类型
- 史上最简单的Hibernate入门简介 doodoofish [原作]
- TCP/IP分层
- 2004.09.20,Mon - 中午打饭让俺想起了六零年
- asp 接数据库方法(oracle&mssql)