www.pudn.com > pop3.rar > CMailAdapter.h
/************************************************ // CMailAdapter.h // Author : wan ning // Date : 2006/11/24 // history : 2006/12/18 将OCCI改为ADO *************************************************/ #ifndef _INC_CMAILADAPER_ #define _INC_CMAILADAPER_ #pragma warning(disable : 4786) #include#include "mimemessage.h" #include "IncAdo.h" #define ZERO_RECORD "Find 0 record" struct tagMAIL_TRANS_LOG { // INT log_id; INT mail_id; CString log_oprate; INT log_mail_size; INT log_time_con; INT log_result; CString log_show; CString log_dictate; CString log_createtime; CString log_timestamp; } ; struct tagPUSH_LOG { // INT log_id; INT mail_id; CString log_oprate; INT log_mail_size; INT log_time_con; INT log_result; CString log_show; CString log_dictate; CString log_createtime; CString log_timestamp; } ; struct tagSERVER_LOG { // INT log_id; CString log_servername; CString log_servertype; INT log_serverstate; CString log_show; CString log_createtime; CString log_timestamp; } ; class CMailAdapter { public : int GetIntervalTime(int ParamID); CMailAdapter(); ~CMailAdapter(); BOOL InitDBConnet(); CString GetLastError(); // 获取用户ID BOOL GetUserID(CString strUserName, CString strPassword, int &iUserID); // 获取用户密码 BOOL GetPassword(CString strUserName, CString &strPassword ); // 获得邮件ID列表 BOOL GetMailIDList(int iUserID, CStringList &slMailID); // 为邮件列表申请,释放空间 BOOL NewMailList(CPtrList &plMails, int imailCount); void DeleteMailList(CPtrList &plMails); // 获取邮件列表 int GetMailList( CStringList &strlMailIds, // IN 邮件ID列表 BOOL bContentNeeded, // IN 是否需要包含正文 BOOL bAttachmentNeeded, // IN 是否需要包含附件 CPtrList &plMails ); // OUT 邮件指针列表 // 获取发送短信所需的邮件列表 BOOL GetSMSMailList(int tryCount, CPtrList &plMails); // 获取单个邮件 BOOL GetSingleMail( CString &strMailID, BOOL bContentNeeded, BOOL bAttachmentNeeded, LPVOID pMail ); // 标记已删除邮件 BOOL SetDeleteMailTags( CStringList &strlMailIds ); // 标记已读邮件 BOOL SetReadMailTags( CStringList &strlMailIds ); // 标记短信发送状态 BOOL SetNotifyState( int iMailID, int iNotifyState ); // 转换邮件附件格式 BOOL ConvertMailAttachment( CMap &mapConvertRule, // IN 附件转换规则 LPVOID pMail ); // IN&OUT 邮件结构指针 // 转换邮件为MIME编码字符串 BOOL GetMailString( LPVOID pMail, // IN 邮件结构指针 CString &strMail ); // OUT 邮件字符串指针 //插入数据到MAIL_TRANS_LOG表 BOOL InsertMailTransLog(tagMAIL_TRANS_LOG mailtranslog); //插入数据到PUSH_LOG表 BOOL InsertPushLog(tagPUSH_LOG pushlog); //插入数据到SERVER_LOG表 BOOL InsertServerLog(tagSERVER_LOG serverlog); // tagMAIL_TRANS_LOG m_mailtranslog; // tagPUSH_LOG m_pushlog; // tagSERVER_LOG m_serverlog; private : BOOL convertMailStruct( LPVOID pMail ); int typeToInt(CString &Type); void freeAttachList(CPtrList &plAttachment); BOOL SetColumeTags( CStringList &strlMailIds, CString strColumeName, int iTag); CString MakeNotiySQL(int tryCount); BOOL SaveContentToFile(MailAttachment *newAttach/*CString strContent, CString strFileName*/, CString &strPathName); private : CAdoConnect m_Conn; // DB链接 BOOL b_firstConn; NOTE_DETAIL m_oldMailDetail; CString m_strLastError; }; #endif //#ifndef _INC_CMAILADAPER_