summaryrefslogtreecommitdiff
path: root/noncore/unsupported/mail2/libmail/smtphandler.h
Side-by-side diff
Diffstat (limited to 'noncore/unsupported/mail2/libmail/smtphandler.h') (more/less context) (show whitespace changes)
-rw-r--r--noncore/unsupported/mail2/libmail/smtphandler.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/noncore/unsupported/mail2/libmail/smtphandler.h b/noncore/unsupported/mail2/libmail/smtphandler.h
new file mode 100644
index 0000000..abbcbcd
--- a/dev/null
+++ b/noncore/unsupported/mail2/libmail/smtphandler.h
@@ -0,0 +1,55 @@
+#ifndef SMTPHANDLER_H
+#define SMTPHANDLER_H
+
+#include <qobject.h>
+#include <qstring.h>
+
+#include "configfile.h"
+
+class QSocket;
+
+class SmtpHandler : public QObject
+{
+ Q_OBJECT
+
+public:
+ SmtpHandler(const QString &header, const QString &message, Account &account, const QString &to);
+
+ enum SmtpError {
+ ErrConnectionRefused,
+ ErrHostNotFound,
+ ErrUnknownResponse,
+ ErrAuthNotSupported
+ };
+
+public slots:
+ void stop();
+
+signals:
+ void finished();
+ void error(const QString &);
+ void status(const QString &);
+
+private slots:
+ void readyRead();
+ void hostFound();
+ void connected();
+ void deleteMe();
+ void errorHandling(int);
+
+private:
+ void sendToSocket(const QString &text, bool log = true);
+
+ enum State { Ehlo, Auth, ReadAuth, Helo, Mail, Rcpt,
+ Data, Body, Quit, Close };
+
+ QString _header, _message;
+ Account _account;
+ QString _to;
+ QSocket *_socket;
+ int _state;
+};
+
+#endif
+
+