00001 00002 #ifndef MAILBODY_H 00003 #define MAILBODY_H 00004 00040 #include "SpamParameters.h" 00041 #include "Logger.h" 00042 #include "MailFilter.h" 00043 #include "HeaderInfo.h" 00044 #include "SpamUtil.h" 00045 00051 class MailBody 00052 { 00053 private: 00054 MailBody(const MailBody &rhs); 00055 SpamParameters &mParams; 00056 HeaderInfo &mHeadInfo; 00057 Logger log; 00058 00059 private: 00060 typedef enum { BAD_VALUE, EndOfFile, LINE, BOUNDARY } lineType; 00061 00062 private: 00063 lineType getLine(char *buf, 00064 const size_t bufSize, 00065 FILE *fp, 00066 const char *boundary); 00067 lineType getHtmlLine(char *buf, 00068 const size_t bufSize, 00069 FILE *fp, 00070 const char *boundary); 00071 void mailBodyMsg( MailFilter::classification klass, 00072 const char *foundStr, 00073 const char *funcName ); 00074 lineType findSection( const char *boundary, FILE *fp ); 00075 SpamUtil::contentType classifyMailSection(FILE *fp); 00076 MailFilter::classification processBySection(const char *boundary, FILE *fp); 00077 MailFilter::classification processTextBody( FILE *fp ); 00078 00079 public: 00080 MailBody( SpamParameters ¶m, HeaderInfo &headInfo ); 00081 MailFilter::classification checkBody(const char *boundary, FILE *fp); 00082 }; 00083 00084 #endif