join 1.0
lightweight network framework library
Loading...
Searching...
No Matches
mailmessage.hpp
Go to the documentation of this file.
1
25#ifndef __JOIN_MAIL_MESSAGE_HPP__
26#define __JOIN_MAIL_MESSAGE_HPP__
27
28// libjoin.
29#include <join/version.hpp>
30#include <join/error.hpp>
31
32// C++.
33#include <iostream>
34#include <vector>
35
36namespace join
37{
42 {
43 public:
47 MailSender () = default;
48
53 MailSender (const std::string& address);
54
60 MailSender (const std::string& address, const std::string& name);
61
66 MailSender (const MailSender& other);
67
73 MailSender& operator= (const MailSender& other);
74
79 MailSender (MailSender&& other);
80
87
91 virtual ~MailSender () = default;
92
97 void address (const std::string& addr);
98
103 const std::string& address () const;
104
109 void realName (const std::string& name);
110
115 const std::string& realName () const;
116
121 bool empty () const;
122
123 protected:
125 std::string _address;
126
128 std::string _name;
129 };
130
137 std::ostream& operator<< (std::ostream& out, const MailSender& sender);
138
143 {
144 public:
154
158 MailRecipient () = default;
159
165 MailRecipient (const std::string& address, Type t = Recipient);
166
173 MailRecipient (const std::string& address, const std::string& name, Type t = Recipient);
174
179 MailRecipient (const MailRecipient& other);
180
187
193
200
204 virtual ~MailRecipient () = default;
205
210 void type (Type t);
211
216 Type type () const;
217
218 protected:
221 };
222
224 using MailRecipients = std::vector <MailRecipient>;
225
230 {
231 public:
235 MailMessage () = default;
236
241 MailMessage (const MailMessage& other);
242
248 MailMessage& operator= (const MailMessage& other);
249
254 MailMessage (MailMessage&& other);
255
262
266 virtual ~MailMessage () = default;
267
272 void sender (const MailSender& from);
273
278 const MailSender& sender () const;
279
284 void addRecipient (const MailRecipient& to);
285
290 void addRecipient (MailRecipient&& to);
291
296 const MailRecipients& recipients () const;
297
302 void subject (const std::string& subj);
303
308 const std::string& subject () const;
309
314 void content (const std::string& message);
315
320 const std::string& content () const;
321
327 int writeHeaders (std::ostream& out) const;
328
334 int writeContent (std::ostream& out) const;
335
336 protected:
339
342
344 std::string _subject;
345
347 std::string _content;
348 };
349}
350
351#endif
mail message.
Definition mailmessage.hpp:230
MailMessage()=default
create the MailMessage instance.
int writeContent(std::ostream &out) const
write content to the given output stream.
Definition mailmessage.cpp:443
void addRecipient(const MailRecipient &to)
add mail recipient.
Definition mailmessage.cpp:305
const MailRecipients & recipients() const
get mail recipients.
Definition mailmessage.cpp:323
const std::string & content() const
get mail content.
Definition mailmessage.cpp:359
const std::string & subject() const
get mail subject.
Definition mailmessage.cpp:341
const MailSender & sender() const
get mail sender
Definition mailmessage.cpp:296
virtual ~MailMessage()=default
destroy the MailMessage instance.
MailRecipients _recipients
mail recipients.
Definition mailmessage.hpp:341
std::string _content
mail content.
Definition mailmessage.hpp:347
std::string _subject
mail sender.
Definition mailmessage.hpp:344
MailSender _sender
mail sender.
Definition mailmessage.hpp:338
int writeHeaders(std::ostream &out) const
write header to the given output stream.
Definition mailmessage.cpp:368
MailMessage & operator=(const MailMessage &other)
assign the MailMessage instance by copy.
Definition mailmessage.cpp:249
mail recipient.
Definition mailmessage.hpp:143
virtual ~MailRecipient()=default
destroy the MailRecipient instance.
Type
recipient type.
Definition mailmessage.hpp:149
@ CCRecipient
Definition mailmessage.hpp:151
@ Recipient
Definition mailmessage.hpp:150
@ BCCRecipient
Definition mailmessage.hpp:152
Type type() const
get recipient type.
Definition mailmessage.cpp:228
MailRecipient()=default
create the MailRecipient instance.
MailRecipient & operator=(const MailRecipient &other)
assign the MailRecipient instance by copy.
Definition mailmessage.cpp:187
Type _type
recipient type.
Definition mailmessage.hpp:220
mail sender.
Definition mailmessage.hpp:42
const std::string & address() const
get address.
Definition mailmessage.cpp:112
std::string _name
name.
Definition mailmessage.hpp:128
bool empty() const
check if empty.
Definition mailmessage.cpp:139
const std::string & realName() const
get real name.
Definition mailmessage.cpp:130
std::string _address
address.
Definition mailmessage.hpp:125
MailSender()=default
create the MailSender instance.
virtual ~MailSender()=default
destroy the MailSender instance.
MailSender & operator=(const MailSender &other)
assign the MailSender instance by copy.
Definition mailmessage.cpp:71
Definition acceptor.hpp:32
std::ostream & operator<<(std::ostream &os, const BasicUnixEndpoint< Protocol > &endpoint)
push endpoint representation into a stream.
Definition endpoint.hpp:255
std::vector< MailRecipient > MailRecipients
mail recipient list.
Definition mailmessage.hpp:224