C++ 建立邮件客户端之收邮件(利用POP3)(二)
2013-12-28 12:07
429 查看
//发送命令,以此类推...
void SocketRM::GetUIDL()
{
send(ServMail,"uidl\r\n",strlen("uidl\r\n"),0);
recv(ServMail,(LPSTR)recvbuf,sizeof(recvbuf),0);
//std::cout<<"Serve:"<<recvbuf;
memset(recvbuf,0,20000);
//std::cout<<"Serve:"<<std::endl;
};//得到邮件头信息
//End...
void SocketRM::GetUIDL()
{
send(ServMail,"uidl\r\n",strlen("uidl\r\n"),0);
recv(ServMail,(LPSTR)recvbuf,sizeof(recvbuf),0);
//std::cout<<"Serve:"<<recvbuf;
memset(recvbuf,0,20000);
//std::cout<<"Serve:"<<std::endl;
};//得到邮件头信息
void SocketRM::GetEmailInfo() { //查看"某"个邮件的前1行 std::cout<<"Which Email do you want?"; std::string Choice; std::cin>>Choice; Order="top "+Choice+" 1\r\n"; send(ServMail,Order.c_str(),strlen(Order.c_str()),0); recv(ServMail,(LPSTR)recvbuf,sizeof(recvbuf),0); //std::cout<<"Serve:"<<recvbuf; memset(recvbuf,0,20000); //std::cout<<"Serve:"<<std::endl; while(true) { //之所以要收取两次SOCKET的缓存区,是POP3中的retr命令 //该命令会先从服务器中下载一个邮件信息——大小 //然后会在下载邮件原文,所以要从服务器上下载两次,也就是要两次存入SOCKET缓存区 //那么就需要recv()函数进行2次COPY. int val=recv(ServMail,(LPSTR)recvbuf,sizeof(recvbuf),0); std::cout<<recvbuf; bufStr+=recvbuf; memset(recvbuf,0,20000); //对于从服务器收到的邮件原文的数据: //对于最后的结尾,有: //recvbuf[val]=='\0',recvbuf[val-1]=='\n',recvbuf[val-2]=='\r',标志符 if(recvbuf[val]=='\0') break; } bufStr=bufStr.c_str(); };
//End...
相关文章推荐
- C++ 建立邮件客户端之收邮件(利用POP3)(一)
- Flex连接SMTP和POP3,建立邮件客户端
- C++建立邮件收发系统之发邮件(利用SMTP)
- QQ邮件客户端、163免费邮件客户端设置POP3、SMTP、IMAP地址
- 利用 POP3 协议和套接字编写接收邮件的程序
- C++ 利用make_heap建立小根堆
- 【利用javamail和POP3、SMPT协议实现邮件的收发】
- Gmail邮件客户端pop3和smtp服务器配置
- 基于C#平台下利用POP3和SMTP协议的邮件归档系统
- 推广邮件客户端(一):让人纠结的POP3客户端
- C/C++:libcurl smtp 邮件客户端(MUA)
- 推广邮件客户端(一):让人纠结的POP3客户端
- 利用Eclipse CDT建立 windows下面C++开发环境
- 如何设置Notes客户端为pop3客户端,收发Internet邮件?(转载他人的文章)
- 利用python实现简单的邮件发送客户端示例
- POP3邮件客户端(.NET2.0)--译
- C++网络(三)用Socket API建立简易TCP服务端、客户端
- c++利用循环数组建立FIFO模板队列
- 转帖:使用POP3邮件客户端访问Domino邮件(Outlook,Foxmail)
- 基于Gmail建立稳定免费的企业邮件系统-客户端和数据备份篇