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_