00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef INCL_MAIL_MESSAGE
00036 #define INCL_MAIL_MESSAGE
00037
00039 #include "base/util/ArrayList.h"
00040 #include "base/util/StringBuffer.h"
00041 #include "base/util/BasicTime.h"
00042 #include "spds/BodyPart.h"
00043 #include "base/globalsdef.h"
00044
00045 BEGIN_NAMESPACE
00046
00056 class MailMessage : public ArrayElement {
00057
00058 private:
00059
00060 StringBuffer newline;
00061
00062
00063 StringBuffer to;
00064 StringBuffer from;
00065 StringBuffer cc;
00066 StringBuffer bcc;
00067
00068 StringBuffer subject;
00069
00070 BasicTime date;
00071 BasicTime received;
00072
00073 StringBuffer contentType;
00074 StringBuffer boundary;
00075 StringBuffer mimeVersion;
00076 StringBuffer messageId;
00077
00078 ArrayList headers;
00079
00080
00081 StringBuffer entryId;
00082
00083
00084
00085
00086 StringBuffer importance;
00087
00088 BodyPart body;
00089
00090 ArrayList attachments;
00091
00092 int parseHeaders(StringBuffer &rfcHeaders);
00093 int parseBodyParts(StringBuffer &rfcBody);
00094
00095 public:
00096
00097
00098 const char *getTo() const;
00099 void setTo(const char *to);
00100
00101 const char *getFrom() const;
00102 void setFrom(const char *from);
00103
00104 const char *getCc() const;
00105 void setCc(const char *cc);
00106
00107 const char *getBcc() const ;
00108 void setBcc(const char *bcc);
00109
00110 const char *getSubject() const ;
00111 void setSubject(const char *subj);
00112
00113 const BasicTime& getDate() const ;
00114 void setDate(const BasicTime& d);
00115
00116 const BasicTime& getReceived() const ;
00117
00118 const char * getContentType() const ;
00119 void setContentType(const char *val);
00120
00121 const char * getBoundary() const ;
00122 void setBoundary(const char *val);
00123
00124 const char * getMimeVersion() const ;
00125 void setMimeVersion(const char *val);
00126
00127 const char * getMessageId() const ;
00128 void setMessageId(const char *val);
00129
00130 const char* getEntryID();
00131 void setEntryID(const char* id);
00132
00133 void setHeaders(const char* extraHeaders);
00134 const char* getHeaders();
00135
00136 void setImportance(const char* importance);
00137 const char* getImportance();
00138
00139
00140 BodyPart & getBody();
00141 void setBody(BodyPart &body);
00142
00143
00144
00145
00146 BodyPart * getFirstAttachment() ;
00147 BodyPart * getNextAttachment() ;
00148 int addAttachment(BodyPart &att);
00149 int attachmentCount();
00150
00151
00152 char *format();
00153 int parse(const char *rfc2822, size_t len = StringBuffer::npos);
00154
00155
00156
00157
00158 bool empty();
00159
00160 ArrayElement* clone();
00161
00162 bool operator==(MailMessage& that);
00163
00164 static StringBuffer decodeHeader(StringBuffer line);
00165
00166 };
00167
00168
00169 END_NAMESPACE
00170
00172 #endif