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