diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/MailClient.h | 61 | ||||
-rw-r--r-- | include/SocketClient.h | 55 |
2 files changed, 116 insertions, 0 deletions
diff --git a/include/MailClient.h b/include/MailClient.h new file mode 100644 index 0000000..60fc735 --- /dev/null +++ b/include/MailClient.h @@ -0,0 +1,61 @@ +/* + * Baltisot + * Copyright (C) 1999-2007 Nicolas "Pixel" Noble + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* $Id: MailClient.h,v 1.1 2007-10-12 13:07:42 pixel Exp $ */ + +#ifndef __MAILCLIENT_H__ +#define __MAILCLIENT_H__ + +#include <vector> + +#include <Socket.h> +#include <BString.h> +#include <Task.h> +#include <Handle.h> +#include <SocketClient.h> +#include <Buffer.h> +#include <Exceptions.h> +#include <Variables.h> + +class MailClient : public SocketClient { + public: + typedef std::vector<String> strings_t; + MailClient(const String & smtp, const String & subject, const String & from, strings_t headers, strings_t tos, strings_t ccs, strings_t bccs, strings_t fakes, Handle * body); + virtual ~MailClient(); + + protected: + virtual int Do() throw (GeneralException); + + private: + int readCode(); + void writeEmail(Handle *); + String getEmail(const String &); + String getNext(); + + String smtp, subject, from; + strings_t headers, tos, ccs, bccs, fakes; + Handle * body; + + String msg; + + std::vector<String>::iterator ptr, end; + enum { RCPT_BEGIN, RCPT_TOS, RCPT_CCS, RCPT_BCCS, RCPT_END } cur_rcpt; +}; + +#endif diff --git a/include/SocketClient.h b/include/SocketClient.h new file mode 100644 index 0000000..9078517 --- /dev/null +++ b/include/SocketClient.h @@ -0,0 +1,55 @@ +/* + * Baltisot + * Copyright (C) 1999-2007 Nicolas "Pixel" Noble + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* $Id: SocketClient.h,v 1.1 2007-10-12 13:07:42 pixel Exp $ */ + +#ifndef __SOCKETCLIENT_H__ +#define __SOCKETCLIENT_H__ + +#include <vector> + +#include <Socket.h> +#include <BString.h> +#include <Task.h> +#include <Handle.h> +#include <Buffer.h> +#include <Exceptions.h> +#include <Variables.h> + +extern timeval default_socket_timeout; + +class SocketClient : public Task { + public: + virtual ~SocketClient(); + String GetStatus(); + + protected: + SocketClient(const String & host, int port, timeval timeout = default_socket_timeout ); + void subDo() throw (GeneralException); + void SetStatus(const String &); + + Task * c; + String status; + Buffer b; + Socket s; + + timeval timeout; +}; + +#endif |