Initial
This commit is contained in:
80
smtp/SMTP.HPP
Normal file
80
smtp/SMTP.HPP
Normal file
@@ -0,0 +1,80 @@
|
||||
#ifndef _SMTP_SMTPCLIENT_HPP_
|
||||
#define _SMTP_SMTPCLIENT_HPP_
|
||||
#ifndef _COMMON_WINDOWS_HPP_
|
||||
#include <common/windows.hpp>
|
||||
#endif
|
||||
#ifndef _SOCKET_SOCKET_HPP_
|
||||
#include <socket/socket.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_BLOCK_HPP_
|
||||
#include <common/block.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_CONSOLE_HPP_
|
||||
#include <common/console.hpp>
|
||||
#endif
|
||||
#ifndef _SMTP_SMTPRESPONSE_HPP_
|
||||
#include <smtp/response.hpp>
|
||||
#endif
|
||||
|
||||
class String;
|
||||
|
||||
class SMTPClient
|
||||
{
|
||||
public:
|
||||
SMTPClient(void);
|
||||
virtual ~SMTPClient();
|
||||
BOOL open(const String &hostName);
|
||||
void close(void);
|
||||
BOOL helo(const String &domainName);
|
||||
BOOL mail(const String &reversePath);
|
||||
BOOL rcpt(const String &forwardPath);
|
||||
BOOL data(const Block<String> &mailData);
|
||||
BOOL verify(const String &forwardPath);
|
||||
BOOL expand(const String &mailList);
|
||||
BOOL send(const String &reversePath);
|
||||
BOOL sendOrMail(const String &reversePath);
|
||||
BOOL sendAndMail(const String &reversePath);
|
||||
BOOL help(const String &commandName=String());
|
||||
BOOL noop(void);
|
||||
BOOL reset(void);
|
||||
BOOL turn(void);
|
||||
BOOL quit(void);
|
||||
BOOL isConnected(void)const;
|
||||
protected:
|
||||
virtual void message(const String &messageString);
|
||||
virtual void message(Block<String> &messageStrings);
|
||||
private:
|
||||
enum {SMTPPort=25};
|
||||
enum SMTPCmds{Helo,Quit,Mail,From,Recipient,To,Data,Verify,Expand,Send,SendOrMail,SendAndMail,Turn,Reset,Help,Noop};
|
||||
SMTPClient(const SMTPClient &someSMTPClient);
|
||||
SMTPClient &operator=(const SMTPClient &someSMTPClient);
|
||||
WORD putControlData(const String &stringData,WORD waitForResponse=TRUE);
|
||||
BOOL isInResponse(const String &responseString,SMTPResponse::RspType responseType);
|
||||
WORD getControlData(void);
|
||||
void createCmds(void);
|
||||
|
||||
SMTPResponse mSMTPResponse;
|
||||
Socket mSMTPControl;
|
||||
WSASystem mWSASystem;
|
||||
Block<String> mSMTPCmds;
|
||||
String mSpace;
|
||||
};
|
||||
|
||||
inline
|
||||
BOOL SMTPClient::isInResponse(const String &responseString,SMTPResponse::RspType responseType)
|
||||
{
|
||||
return mSMTPResponse.isInResponse(responseString,responseType);
|
||||
}
|
||||
|
||||
inline
|
||||
BOOL SMTPClient::isConnected(void)const
|
||||
{
|
||||
return mSMTPControl.isConnected();
|
||||
}
|
||||
|
||||
inline
|
||||
void SMTPClient::close(void)
|
||||
{
|
||||
mSMTPControl.destroy();
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user