1
0

Message.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #ifndef MESSAGE_H
  2. #define MESSAGE_H
  3. #include "Image/MimeImage.h"
  4. #include "Image/JpegImage.h"
  5. #include "Util/Util.h"
  6. #include <string>
  7. #include <vector>
  8. namespace MailServer {
  9. class Message
  10. {
  11. public:
  12. Message(const std::string& address, const Util::Context& context, const std::string& message);
  13. private:
  14. class State
  15. {
  16. public:
  17. enum type
  18. {
  19. Header,
  20. Data,
  21. MimeBoundary,
  22. Image
  23. };
  24. };
  25. private:
  26. void ProcessMessage(const std::string& message);
  27. State::type ProcessHeaderLine(const std::string& line);
  28. State::type ProcessDataLine(const std::string& line);
  29. State::type ProcessMimeBoundary(const std::string& line);
  30. State::type ProcessImage(const std::string& line);
  31. private:
  32. std::string m_address;
  33. const Util::Context& m_context;
  34. std::string m_sender;
  35. std::string m_receiver;
  36. std::string m_subject;
  37. std::string m_date;
  38. std::string m_mimeBoundary;
  39. std::string m_contentType;
  40. std::string m_contentEncoding;
  41. size_t m_currentImage;
  42. std::string m_imageName;
  43. std::vector<Image::MimeImage> m_mimeImages;
  44. std::vector<Image::JpegImage> m_images;
  45. };
  46. } // namespace MailServer
  47. #endif // MESSAGE_H