1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
POP3客户端

实验目的 操作系统,windows xp home edition版本 Vc++ 6.0编译器 接入互联网 实验目的 理解POP3协议原理,对邮件接收信息内容进行分析,熟悉SOCKET编程,来实现POP3客户端。 实验内容 实现一个简单的POP3客户端。 连接POP3服务器. 实现命令:USER,PASS,STAT,LIST,RETR,DELE,QUIT。 3.接收邮箱所有邮件 4.邮件进行分析,解析出:主题,发件人,发件时间,发件内容。 5.对个部分内容进行传输编码的解码,根据传输编码,进行base64解码或Quoted-Printable的解码 6.进行编码转换,将邮件原编码UTF8,GBK或7bit等转换为GBK,可以正确在本机上显示 程序运行 在实验的时候,对和进行了测试,以下是对服务器,用户pop3client,密码123456的演示(通过选取下拉框中的主题切换邮件) 登录界面: 显示界面: 点击删除按钮: 程序实现 程序结构 base64_dequoted.h :存放对base64和quoted的解码函数 1.int DecodeQuoted(const char* pSrc, unsigned char* pDst, int nSrcLen)//对quoted传输编码进行解码 2.void Decode(const char *szCoded, BYTE *pOut) //对base64传输编码进行解码 StructInfo.h: 根据邮件的格式,设计的一个结构体 struct MailInfo { CString m_Subject; //邮件的主题 CString s_Time; //邮件发送时间 CString s_Person; //邮件的发送人 CString m_Contex; //邮件的内容 CString m_Code; //邮件的编码 }; PopClient.cpp: 存放对pop3的命令操作:USER,PASS,STAT,LIST,RETR,DELE,QUIT bool ConToServer(const char* sName) //连接pop3服务器,sName为pop3服务器名字或者ip; bool LoginToServer(const char *uName,const char *uPass) //登陆POP3服务器,用户名为uName,用户密码为uName; bool RecvFromServer(vectorMailInfo m_Info) //从POP3服务器获取邮件信息,将信息存储在容器m_Info中; bool DeleteFromServer(int index) //从POP3服务器删除某个邮件,index指定删除邮件的标示号 bool QuitFromServer() //从pop3服务器退出 int RecvData(void *pData, int nLen) //接收nLen长度的流,在接收大数据量邮件的时候,需要循环读取流 void StringToStruct(const char * msgBuf,MailInfo mailInfo) //将获取的邮件字符串流,转换到对应的结构体mailInfo中,便于以后显示和操作 int GetContent(char *destStr,CString dStr,CString code) //获取邮件正文进行传输编码解码,并将编码转换为GBK,存储在dStr中,code为正文的编码 int GetGBKSubject(char *destStr,CString dStr) //将destStr进行qp或base64解码后,转换为GBK,存储于dStr中 int GetAdress(char *destStr,CString dStr) //找出邮箱的地址,为之间的内容,或者直接为“From:”后面的值,存储于dStr中 LoginDlg.cpp: 用于登录对话框,接收用户输入的pop3服务器地址,用户名和密码,调用PopClient.cpp中的函数连接服务器,登录服务器 PClientDlg.cpp:用于显示邮件的主题,时间,发件人,内容等信息的对话框,还可以进行删除操作和退出操作。 连接服务器 采用流方式tcp创建socket,可以根据服务器名(如)或者服务器IP(如sina的pop3的ip: 42),服务器端口号110; 服务器返回"+OK …"表示成功; /*采用tcp传输*/ pClient = socket(AF_INET,SOCK_STREAM,0); /*设置POP

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档