/* * Purpose: private wxWindows mail transport implementation * Author: Frank Buß * Created: 2002 */ #ifndef SMPT_H #define SMPT_H #include #include #include "email.h" #include "cmdprot.h" class WXDLLIMPEXP_SMTP wxSMTPListener { public: virtual void OnSocketError(int errorCode) {}; virtual void OnRecipientAdded(const wxString& address, int errorCode) {}; virtual void OnDataSent(int errorCode) {}; }; class MailState; class WXDLLIMPEXP_SMTP wxSMTP : public wxCmdlineProtocol //, public wxEvtHandler { public: wxSMTP(wxSMTPListener* pListener = NULL); ~wxSMTP(); void Send(wxEmailMessage* pMessage); void EvaluateLine(const wxString& line); void OnConnect(wxSocketEvent& event); // MailStateContext interface void ChangeState(const MailState& mailState); void SendNextRecipient(); void OnRecipientError(); void OnRecipientSuccess(); void OnDataSuccess(); void SendFrom(); void SendData(); private: const MailState* m_pMailState; wxSMTPListener* m_pListener; wxEmailMessage* m_pMessage; // current recipient and counts size_t m_count; wxString m_currentRecipient; // all recipients wxArrayString m_recipients; }; #endif