Files
2020-05-11 21:53:24 +02:00

61 lines
1.1 KiB
C++

#ifndef MESSAGE_H
#define MESSAGE_H
#include "Image/MimeImage.h"
#include "Util/Util.h"
#include <JpegImage.h>
#include <string>
#include <vector>
namespace MailServer {
class Message
{
public:
Message(const std::string& address, const Util::Context& context, const std::string& message);
private:
class State
{
public:
enum type
{
Header,
Data,
MimeBoundary,
Image
};
};
private:
void ProcessMessage(const std::string& message);
State::type ProcessHeaderLine(const std::string& line);
State::type ProcessDataLine(const std::string& line);
State::type ProcessMimeBoundary(const std::string& line);
State::type ProcessImage(const std::string& line);
private:
std::string m_address;
const Util::Context& m_context;
std::string m_sender;
std::string m_receiver;
std::string m_subject;
std::string m_date;
std::string m_mimeBoundary;
std::string m_contentType;
std::string m_contentEncoding;
size_t m_currentImage;
std::string m_imageName;
std::vector<Image::MimeImage> m_mimeImages;
std::vector<Image::JpegImage> m_images;
};
} // namespace MailServer
#endif // MESSAGE_H