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 MailMessage();
00098
00099
00100 const char *getTo() const;
00101 void setTo(const char *to);
00102
00103 const char *getFrom() const;
00104 void setFrom(const char *from);
00105
00106 const char *getCc() const;
00107 void setCc(const char *cc);
00108
00109 const char *getBcc() const ;
00110 void setBcc(const char *bcc);
00111
00112 const char *getSubject() const ;
00113 void setSubject(const char *subj);
00114
00115 const BasicTime& getDate() const ;
00116 void setDate(const BasicTime& d);
00117
00118 const BasicTime& getReceived() const ;
00119
00120 const char * getContentType() const ;
00121 void setContentType(const char *val);
00122
00123 const char * getBoundary() const ;
00124 void setBoundary(const char *val);
00125
00126 const char * getMimeVersion() const ;
00127 void setMimeVersion(const char *val);
00128
00129 const char * getMessageId() const ;
00130 void setMessageId(const char *val);
00131
00132 const char* getEntryID();
00133 void setEntryID(const char* id);
00134
00135 void setHeaders(const char* extraHeaders);
00136 const char* getHeaders();
00137
00138 void setImportance(const char* importance);
00139 const char* getImportance();
00140
00141
00142 BodyPart & getBody();
00143 void setBody(BodyPart &body);
00144
00145
00146
00147
00148 BodyPart * getFirstAttachment() ;
00149 BodyPart * getNextAttachment() ;
00150 int addAttachment(BodyPart &att);
00151 int attachmentCount();
00152
00153
00154 char *format();
00155 int parse(const char *rfc2822, size_t len = StringBuffer::npos);
00156
00157
00158
00159
00160 bool empty();
00161
00162 ArrayElement* clone();
00163
00164 bool operator==(MailMessage& that);
00165
00166 static StringBuffer decodeHeader(StringBuffer line);
00167
00168 };
00169
00170
00171 END_NAMESPACE
00172
00174 #endif