1 /* 2 * Copyright 2007-2015, Haiku Inc. All Rights Reserved. 3 * Copyright 2001-2002 Dr. Zoidberg Enterprises. All rights reserved. 4 * Copyright 2011, Clemens Zeidler <haiku@clemens-zeidler.de> 5 * 6 * Distributed under the terms of the MIT License. 7 */ 8 #ifndef SMTP_H 9 #define SMTP_H 10 11 12 #include <String.h> 13 14 #include <MailFilter.h> 15 #include <MailProtocol.h> 16 #include <MailSettings.h> 17 18 19 class BSocket; 20 21 22 class SMTPProtocol : public BOutboundMailProtocol { 23 public: 24 SMTPProtocol( 25 const BMailAccountSettings& settings); 26 virtual ~SMTPProtocol(); 27 28 protected: 29 status_t Connect(); 30 void Disconnect(); 31 32 virtual status_t HandleSendMessages(const BMessage& message, 33 off_t totalBytes); 34 35 status_t Open(const char *server, int port, bool esmtp); 36 void Close(); 37 status_t Login(const char *uid, const char *password); 38 status_t Send(const char *to, const char *from, 39 BPositionIO *message); 40 41 int32 ReceiveResponse(BString &line); 42 status_t SendCommand(const char *cmd); 43 44 private: 45 status_t _SendMessage(const entry_ref& ref); 46 status_t _POP3Authentication(); 47 48 BSocket* fSocket; 49 BString fLog; 50 BMessage fSettingsMessage; 51 int32 fAuthType; 52 53 bool use_ssl; 54 55 status_t fStatus; 56 BString fServerName; // required for DIGEST-MD5 57 }; 58 59 60 #endif // SMTP_H 61