POP3协议类库Word下载.docx
- 文档编号:22088396
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:12
- 大小:16.83KB
POP3协议类库Word下载.docx
《POP3协议类库Word下载.docx》由会员分享,可在线阅读,更多相关《POP3协议类库Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
#defineSTAT_CHECK6
#defineNOOP_CHECK7
#defineLIST_CHECK8
#defineRETR_CHECK9
///////////////////////////////////////////////////////////////////////
classCPop
{
public:
BOOLList();
CWordArraym_SizeOfMsg;
CStringGetErrorMessage();
//Ifthereisanyerrorthiswillreturnitmethod
CStringGetPassword();
//GettingPasswordstoredinclass
voidSetPassword(CString&
Password);
//SettingPasswordinclass
CStringGetUser();
//Gettingusernamestoredinclass
voidSetUser(CString&
User);
//Settingusernameinclass
CStringGetHost();
//GettingHostname(emailservername)storedinclass
voidSetHost(CString&
Host);
//SettingHostname(emailservername)inclass
BOOLConnect();
//Connectingtoemailserver
intGetTotalMailSize();
//itreturnstheTotalMailSize
intGetNumberOfMails();
//Itreturnthenumberofmails
CStringGetMsgContents();
BOOLStatistics();
//issuetheSTATcommandonemailserver
BOOLRetrieve(intMsgNumber);
//Gettinganyparticularmailmessage
BOOLReset();
//issuetheresetcommandonemailserver
intGetMessageSize(intMsgNumber);
//Returnasizeofanyparticularmail
BOOLNoop();
//issuetheNOOPcommandonemailserver
BOOLDisconnect();
//issuetheQUITcommandonemailserver
BOOLDelete(int&
MsgNumber);
//Deleteingaparticularmessagefromemailserver
BOOLConnect(CString&
Host,CString&
User,CString&
CPop();
virtual~CPop();
private:
CStringm_ErrorMessage;
BOOLCheckResponse(intResponseType);
CStringm_Password;
CStringm_User;
CStringm_Host;
CStringm_MsgContents;
intm_TotalSize;
intm_NumberMail;
CSocketm_PopServer;
};
/#endif//!
/*----------------------------------------------------------------
//Pop.cpp:
Definestheclassbehaviorsfortheapplication.
#include"
stdafx.h"
Pop.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
////////////////////////////////////////////////////////////////////
//CPopClass
///////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
//Construction/Destruction
//////////////////////////////////////////////////////////////////
CPop:
:
CPop()
m_PopServer.Create();
}
//{4EEC1C91-6BE1-11d1-8824-00001C302581}
~CPop()
m_PopServer.Close();
}
BOOLCPop:
Connect(CString&
Host,CString&
User,CString&
Password)
charbuf[512];
if(!
m_PopServer.Connect(Host,110))//110Pop3Port
{
m_ErrorMessage=_T("
Servercannotbeconnected"
);
returnFALSE;
}
else
if(CheckResponse(CONNECTION_CHECK)==FALSE)
wsprintf(buf,"
USER%s\r\n"
(LPCSTR)User);
m_PopServer.Send(buf,strlen(buf));
if(CheckResponse(USER_CHECK)==FALSE)
PASS%s\r\n"
(LPCSTR)Password);
if(CheckResponse(PASSWORD_CHECK)==FALSE)
returnTRUE;
}
Delete(int&
MsgNumber)
DELE%d\r\n"
MsgNumber);
if(CheckResponse(DELETE_CHECK)==FALSE)
Disconnect()
QUIT\r\n"
if(CheckResponse(QUIT_CHECK)==FALSE)
Noop()
NOOP\r\n"
if(CheckResponse(NOOP_CHECK)==FALSE)
//ReturntheMsgSizeforgivenmsgnumber
intCPop:
GetMessageSize(intMsgNumber)
if(m_SizeOfMsg.GetSize()<
MsgNumber+1)
return0;
returnm_SizeOfMsg[MsgNumber+1];
Reset()
RSET\r\n"
if(CheckResponse(RSET_CHECK)==FALSE)
//MsgContentswillholdthemsgbody
Retrieve(intMsgNumber)
RETR%d\r\n"
if(CheckResponse(RETR_CHECK)==FALSE)
Statistics()
STAT\r\n"
if(CheckResponse(STAT_CHECK)==FALSE)
CStringCPop:
GetMsgContents()
returnm_MsgContents;
GetNumberOfMails()
returnm_NumberMail;
GetTotalMailSize()
returnm_TotalSize;
Connect()
Connect(m_Host,m_User,m_Password);
voidCPop:
SetHost(CString&
Host)
m_Host=Host;
GetHost()
returnm_Host;
SetUser(CString&
User)
m_User=User;
GetUser()
returnm_User;
SetPassword(CString&
m_Password=Password;
GetPassword()
returnm_Password;
CheckResponse(intResponseType)
charbuf[1000];
for(inti=0;
i<
512;
i++)
buf[i]='
\0'
;
m_PopServer.Receive(buf,sizeof(buf));
switch(ResponseType)
caseCONNECTION_CHECK:
if(strnicmp(buf,"
-ERR"
4)==0)
BadConnection"
break;
caseUSER_CHECK:
BadUserName"
casePASSWORD_CHECK:
BadPasswordName"
caseQUIT_CHECK:
ErroroccuredduringQUIT"
caseDELETE_CHECK:
ErroroccuredduringDELE"
caseRSET_CHECK:
ErroroccuredduringRSET"
caseSTAT_CHECK:
ErroroccuredduringSTAT"
BOOLEmailNumber=TRUE;
for(char*p=buf;
*p!
='
p++)
if(*p=='
\t'
||*p=='
'
)
if(EmailNumber==TRUE)
m_NumberMail=atoi(p);
EmailNumber=FALSE;
m_TotalSize=atoi(p);
caseNOOP_CHECK:
ErroroccuredduringNOOP"
caseLIST_CHECK:
ErroroccuredduringLIST"
.'
m_SizeOfMsg.Add(atoi(p));
caseRETR_CHECK:
ErroroccuredduringRETR"
chartemp[9000];
m_PopServer.Receive(temp,sizeof(temp));
m_MsgContents=temp;
GetErrorMessage()
returnm_ErrorMessage;
List()
LIST\r\n"
if(CheckResponse(LIST_CHECK)==FALSE)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- POP3 协议