mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-17 14:16:10 -06:00
70 lines
2.4 KiB
C++
70 lines
2.4 KiB
C++
#ifndef _test_smtp_smtpEx_h_
|
|
#define _test_smtp_smtpEx_h_
|
|
#include <Web/Web.h>
|
|
class SmtpMailEx
|
|
{
|
|
public:
|
|
enum AS { TO, CC, BCC };
|
|
|
|
SmtpMailEx();
|
|
|
|
SmtpMailEx& Host(String h) { host = h; return *this; }
|
|
SmtpMailEx& Port(int p) { port = p; return *this; }
|
|
SmtpMailEx& From(String f) { from = f; return *this; }
|
|
SmtpMailEx& To(String t, AS a = TO) { to.Add(t); as.Add(a); return *this; }
|
|
SmtpMailEx& Text(String t, const char *m = 0) { text = t; mime = m; return *this; }
|
|
SmtpMailEx& NoHeader() { no_header = true; return *this; }
|
|
SmtpMailEx& NoHeaderSep() { no_header_sep = true; return *this; }
|
|
SmtpMailEx& ReplyTo(String r) { reply_to = r; return *this; }
|
|
SmtpMailEx& TimeSent(Time t) { time_sent = t; return *this; }
|
|
SmtpMailEx& Subject(String s) { subject = s; return *this; }
|
|
SmtpMailEx& Transcript(bool t = true) { transcript = t; return *this; }
|
|
SmtpMailEx& AttachFile(const char *filename, const char *mime = 0);
|
|
SmtpMailEx& Attach(const char *name, String data, const char *mime = 0);
|
|
SmtpMailEx& User( const String& u ) { user = u ; return *this ; }
|
|
SmtpMailEx& Password( const String& p ) { pass = p ; return *this ; }
|
|
|
|
|
|
bool Send();
|
|
|
|
String GetError() const { return error; }
|
|
String GetTranscript() const { return transcript_text; }
|
|
|
|
|
|
private:
|
|
|
|
bool authenticate( Socket& s ) ;
|
|
String user, pass;
|
|
String serverGreeting ;
|
|
|
|
struct Attachment
|
|
{
|
|
String name; // mail name
|
|
String file; // source path (dynamic attachments only)
|
|
String mime; // content type (application/octet-stream by default)
|
|
String data;
|
|
};
|
|
|
|
String host;
|
|
int port; // default = 25
|
|
String from;
|
|
Vector<String> to;
|
|
Vector<char> as;
|
|
String text;
|
|
String mime; // default: text/plain; charset=windows-1250
|
|
bool transcript; // default = false
|
|
Array<Attachment> attachments;
|
|
|
|
// header-related parts
|
|
bool no_header; // default = false
|
|
bool no_header_sep; // default = false
|
|
Time time_sent;
|
|
String reply_to;
|
|
String subject;
|
|
|
|
// state automaton
|
|
String error;
|
|
String transcript_text;
|
|
};
|
|
|
|
#endif
|