www.pudn.com > pop3.rar > MimeMessage.h


/************************************************ 
// MimeMessage.h 
// Author	: wan ning 
// Date		: 2006/11/17 
// history	: 
*************************************************/ 
 
#ifndef _MAILADAPTER_MIME_MESSAGE_ 
#define _MAILADAPTER_MIME_MESSAGE_ 
 
#include  
//#include "mimeb64.h" 
 
#ifdef __cplusplus 
extern "C" { 
#endif 
 
//参照原mapi部分设计 
#define MESSAGE_ENTRYID_LEN	70 
#define MESSAGE_ID_LEN		96 
//收件人/发件人 
typedef struct MailUsr 
{  
	long 	lRecipClass;      // 0: Sender; 1: To; 2: CC; 3: BCC 
	char* 	lpszName; 
	char* 	lpszAddress; 
	char*	lpszSMTPAddress; 
} MAIL_USR, *LPMAIL_USR;  
 
//附件 
typedef struct MailAttach 
{  
	char* 	lpszName;  
	char* 	lpszPathName;  
} MAIL_ATCH, *LPMAIL_ATCH; 
//邮件 
typedef struct NoteDetail 
{ 
	BYTE	bpNoteEntryID[MESSAGE_ENTRYID_LEN]; 
	char	sNoteID[MESSAGE_ID_LEN + 1]; 
	char*	pcMessageClass;    
	char* 	pcSubject; 
	char*	pcDisplaySender; 
	char*	pcDisplayTo; 
	char*	pcDisplayCc; 
	char*	pcDisplayBcc; 
	long 	lImportance; 
	long	lSize; 
	BOOL	bHasAttach; 
	FILETIME ftDateTime;   
//	char* 		pcBodyFilePathName; 
	char* 		pcBodyContent; 
	LPMAIL_USR 	lpSender; 
	int 		iRcvrCount; 
	LPMAIL_USR 	lpReceiver; 
	int 		iAttachCount; 
	LPMAIL_ATCH lpAttach; 
// follow variable is only used in Pop3 Server 
	BOOL		bDeleted; 
	BOOL		bCompleted; 
	char*		pcTransportMessageHeader; 
} NOTE_DETAIL, *LPNOTE_DETAIL; 
//--参照原mapi部分设计-- 
 
// 公共借口 
long getMimeStrLen( LPVOID pMail, char *strError ); 
BOOL getMailString( LPVOID pMail, char *strMail, char *strError ); 
void * mallocMime( LPVOID pMail, char *strError ); 
void freeMime( void *strMail ); 
 
// 内部接口 
static void startHeader( char *strMail ); 
static void endHeader( char *strMail ); 
static void addHeaderLine( char *plHeader, const char *plszNewLine ); 
static void prepareHeader( LPVOID pMail, char *strMail); 
static BOOL prepareBody( LPVOID pMail, char *strMail, char *strError ); 
static BOOL appendText( LPVOID pMail, char *strMail, char *strError ); 
static LPMAIL_USR getRecipient( LPNOTE_DETAIL pMail, int i ); 
static LPMAIL_ATCH getMailAttach( LPNOTE_DETAIL pMail, int i ); 
static BOOL appendAttach( LPMAIL_ATCH lpMailAttach, char *strMail, char *strError ); 
static BOOL appendFileBody(char *plszfilename, char *strMail, char *strError ); 
static void insertBoundary( char* strMail ); 
static long getByteFileSize( char *fileName ); 
static BOOL getContentType(LPMAIL_ATCH lpMailAttach,char *sTemp); 
#ifdef __cplusplus 
} 
#endif 
 
#endif