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
00053 class MailMessage : public ArrayElement {
00054
00055 private:
00056
00057 StringBuffer newline;
00058
00059
00060 StringBuffer to;
00061 StringBuffer from;
00062 StringBuffer cc;
00063 StringBuffer bcc;
00064
00065 StringBuffer subject;
00066
00067 BasicTime date;
00068 BasicTime received;
00069
00070 StringBuffer contentType;
00071 StringBuffer boundary;
00072 StringBuffer mimeVersion;
00073 StringBuffer messageId;
00074
00075 ArrayList headers;
00076
00077
00078 StringBuffer entryId;
00079
00080
00081
00082
00083 StringBuffer importance;
00084
00085 BodyPart body;
00086
00087 ArrayList attachments;
00088
00089 int parseHeaders(StringBuffer &rfcHeaders);
00090 int parseBodyParts(StringBuffer &rfcBody);
00091
00092 public:
00093
00094
00095 const char *getTo() const;
00096 void setTo(const char *to);
00097
00098 const char *getFrom() const;
00099 void setFrom(const char *from);
00100
00101 const char *getCc() const;
00102 void setCc(const char *cc);
00103
00104 const char *getBcc() const ;
00105 void setBcc(const char *bcc);
00106
00107 const char *getSubject() const ;
00108 void setSubject(const char *subj);
00109
00110 const BasicTime& getDate() const ;
00111 void setDate(const BasicTime& d);
00112
00113 const BasicTime& getReceived() const ;
00114
00115 const char * getContentType() const ;
00116 void setContentType(const char *val);
00117
00118 const char * getBoundary() const ;
00119 void setBoundary(const char *val);
00120
00121 const char * getMimeVersion() const ;
00122 void setMimeVersion(const char *val);
00123
00124 const char * getMessageId() const ;
00125 void setMessageId(const char *val);
00126
00127 const char* getEntryID();
00128 void setEntryID(const char* id);
00129
00130 void setHeaders(const char* extraHeaders);
00131 const char* getHeaders();
00132
00133 void setImportance(const char* importance);
00134 const char* getImportance();
00135
00136
00137 BodyPart & getBody();
00138 void setBody(BodyPart &body);
00139
00140
00141
00142
00143 BodyPart * getFirstAttachment() ;
00144 BodyPart * getNextAttachment() ;
00145 int addAttachment(BodyPart &att);
00146 int attachmentCount();
00147
00148
00149 char *format();
00150 int parse(const char *rfc2822, size_t len = StringBuffer::npos);
00151
00152
00153
00154
00155 bool empty();
00156
00157 ArrayElement* clone();
00158
00159 bool operator==(MailMessage& that);
00160
00161 static StringBuffer decodeHeader(StringBuffer line);
00162
00163 };
00164
00166 #endif