00001
00014 #ifndef __MESSAGECOMPOSER_HPP__
00015 #define __MESSAGECOMPOSER_HPP__
00016
00017 #include "EmaiMessage.hpp"
00018 #include <vector>
00019
00020
00021
00022
00023
00024
00025
00031 class MessageComposer
00032 {
00033 private:
00034
00035 Emai::MessagePart mTextPart;
00036 Emai::MessagePart mHtmlPart;
00037
00038 typedef std::vector<Emai::MessagePart>
00039 MessagePartArray;
00040
00041 MessagePartArray mAttachments;
00042 MessagePartArray mInlines;
00043
00044 public:
00045
00046 MessageComposer();
00047
00048 ~MessageComposer();
00049
00050 private:
00051
00052 Emai::MessagePart CreateAlternativeMultipart();
00053
00054 Emai::MessagePart CreateRelatedMultipart(
00055 EmaiUint32 parameterValueFlag);
00056
00057 Emai::MessagePart CreateMixedMultipart();
00058
00059 void BindAttachments(
00060 Emai::MessagePart& inMessagePart,
00061 const MessagePartArray& inAttachments);
00062
00063 public:
00064
00071 void SetText(
00072 EmaiConstCharPtr inPlainText,
00073 EmaiUint32 inCharacterSet);
00074
00081 void SetUnicodeText(
00082 EmaiConstUniCharPtr inUnicodeText);
00083
00089 void SetHtml(
00090 EmaiConstCharPtr inHtmlText);
00091
00099 void AddAttachmentFromData(
00100 const void* inData,
00101 EmaiUint32 inDataSize,
00102 EmaiConstUniCharPtr inFileName);
00103
00110 void AddAttachmentFromFile(
00111 EmaiConstUniCharPtr inFileName,
00112 EmaiConstUniCharPtr inFileFullPath);
00113
00122 void AddInlineFromData(
00123 const void* inData,
00124 EmaiUint32 inDataSize,
00125 EmaiConstUniCharPtr inFileName,
00126 EmaiConstUniCharPtr inContentId );
00127
00135 void AddInlineFromFile(
00136 EmaiConstUniCharPtr inFileName,
00137 EmaiConstUniCharPtr inFileFullPath,
00138 EmaiConstUniCharPtr inContentId );
00139
00150 Emai::Message ComposeMessage(
00151 Emai::ContactList inFromContact,
00152 Emai::ContactList inSenderContact,
00153 Emai::ContactList inToContact,
00154 Emai::ContactList inCCContact,
00155 Emai::ContactList inBCContact,
00156 EmaiConstUniCharPtr inMessageSubject);
00157
00158 };
00159
00160 #endif