📄 epop3.h
字号:
// ePop3.h: interface for the CePop3 class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_EPOP3_H__52CF41A7_8FAF_4C3D_9DA3_AFBA8D096125__INCLUDED_)
#define AFX_EPOP3_H__52CF41A7_8FAF_4C3D_9DA3_AFBA8D096125__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Mail.h"
#include "Segment.h"
#include "MailDate.h"
#include "CeUidlDB.h"
int const POP3SERVER_LENGTH = 50; //pop3服务器名长度
int const MESSEAGE_LENGTH = 100; //m_message的长度
int const POP3_PORT_NUMBER = 110; //默认的端口号
int const RESPONSEBUFFER_LENGTH = 1024;//缓冲区的大小
int const MAX_USER_PASSWORD_LENGTH = 40;//最大的用户名与密码长度
int const MAX_DBNAME_LENGTH = 40;
int const MAX_ERROR_MESSAGE_LENGTH = 40;
int const MAX_MESSAGE_CONTENT_LENGTH = 1024;
#define MAILDATA_DEFUALT_PATH L"MailData/"
class CePop3
{
public:
BOOL ReleaseSrc();
BOOL ParseMailHead(int index);
CMail* m_MailList;
BOOL AddUidlDB(int index);
BOOL HaveNewMails();
BOOL CheckUIDL(char* uidl);
BOOL UIDLByNum(int MsgNumber);
BOOL UIDL();
void set_username(char* username);
BOOL PrepareDB();
HANDLE m_hFile;
int m_actualreceivedbytes;
BOOL Retrieve();
BOOL ParseMailHead();
BOOL CreateMailList();
BOOL ListByNum(int MsgNumber);
BOOL List();
BOOL Statistics();
BOOL Retrieve(int MsgNumber);
BOOL Reset();
BOOL Noop();
BOOL Delete(int MsgNumber);
BOOL SendMessage();
BOOL DisConnect();
BOOL POP3Connect(int portnumber = POP3_PORT_NUMBER);
BOOL Login();
void set_user(char*);
void set_password(char *);
void set_servername(char *);
CePop3();
virtual ~CePop3();
int m_NumberMail;
CeUidlDB m_UidlDB;
private:
int get_response(int ResponseType);
char m_rebuffer[RESPONSEBUFFER_LENGTH]; //接收服务器返回消息的缓冲区
char m_message[MESSEAGE_LENGTH]; //字符串消息
char m_pop3server[POP3SERVER_LENGTH]; //pop3服务器名
char m_user[MAX_USER_PASSWORD_LENGTH]; //用户名
char m_password[MAX_USER_PASSWORD_LENGTH]; //用户密码
char m_username[MAX_USER_PASSWORD_LENGTH];
char m_ErrorMessage[MAX_ERROR_MESSAGE_LENGTH];
char m_MsgContent[MAX_MESSAGE_CONTENT_LENGTH];
TCHAR m_DBName[MAX_DBNAME_LENGTH];
SOCKET m_socketid; //socket描述符
int m_TotalSize;
int* m_SizeOfMsg;
char** m_UidlsOfMsg;
int* m_IndexOfMsg;
int m_CurrentMsg;
CeMailDate m_InMail;
CeMailDate m_TrashMail;
CeMailDate m_FileManager;
TCHAR DIRECTORY_PATH[100];
CEGUID guid;
BOOL Retrieve_Type; ////True:收邮件时不删除邮件,False:边收边删
enum eResponse{
CONNECTION_CHECK=0,
USER_CHECK,
PASSWORD_CHECK,
QUIT_CHECK,
DELETE_CHECK,
RSET_CHECK,
STAT_CHECK,
NOOP_CHECK,
LIST_CHECK,
RETR_CHECK,
UIDL_CHECK,
DISCONNECTION_CHECK
};
static char* response_table[];
};
#endif // !defined(AFX_EPOP3_H__52CF41A7_8FAF_4C3D_9DA3_AFBA8D096125__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -