Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CP_SMTP Class Reference

A CP_NetProtoBase class that implements the SMTP protocol for sending messages.

Inheritance diagram for CP_SMTP:

CP_NetProtoBase CP_Object CP_NoCopy List of all members.

Public Types

enum  { kCP_SMTPPortNumber = 25 }
enum  SMTPConnectState { kCP_SMTPClosed, kCP_SMTPConnected }

Public Member Functions

void SetID (FourCharCode inIdentifier)
FourCharCode GetID ()
void RegisterSignal (const CP_SignalHolder &inSignal)
CP_DataValueSignalFindSignal (const CP_String &inSignalName)
UInt32 GetNumberSignals ()
CP_String GetNthSignalName (UInt32 inSignalIndex)
void RegisterSlot (const CP_SlotHolder &inSlot)
CP_DataValueSlot FindSlot (const CP_String &inSlotName)
UInt32 GetNumberSlots ()
CP_String GetNthSlotName (UInt32 inSlotIndex)
template<class R, class P1, class P2>
CP_CommandHandlerSignalConnect (CPLAT::CP_CommandNo cmd, void(R::*handler)(P1, P2), SInt32 mode)
template<class R, class P1, class P2>
void Connect (CP_Object *control, const CPLAT::CP_String &signalName, void(R::*handler)(P1, P2))
Getters
virtual CP_InternetResponseGetServerResponse ()
Progress
void BroadcastProgress (CP_InternetProtocolProgress &inProtocolProgress)
Getters
virtual CP_InternetResponseGetServerResponse ()
Progress
void BroadcastProgress (CP_InternetProtocolProgress &inProtocolProgress)
Getters
virtual CP_InternetResponseGetServerResponse ()
Progress
void BroadcastProgress (CP_InternetProtocolProgress &inProtocolProgress)
Getters
virtual CP_InternetResponseGetServerResponse ()
Progress
void BroadcastProgress (CP_InternetProtocolProgress &inProtocolProgress)
Constructor / Destructor
 CP_SMTP (CP_Socket *inSocketConnection)
 Constructor.
virtual ~CP_SMTP () throw ()
 Destructor.
Connection
void Connect (const CP_String &inAddress, SInt16 inPortNumber=CP_SMTP::kCP_SMTPPortNumber)
void WaitForServerID ()
Commands
void SendDATA ()
void SendHELO (const CP_String &inAddress)
void SendQUIT ()
void SendRSET ()
void SendMAIL (const CP_String &inFrom)
void SendRCPT (const CP_String &inTo)
void SendRCPT (CP_Strings_Array *inList)
Sending
void SendOneMessage (CP_MailMessage &inMailMessage)
void SendMessageData (CP_MailMessage &inMailMessage)
void SendSMTPEncodeData (const CP_String &inMessageData)
Getters
virtual CP_InternetResponseGetServerResponse ()
Progress
void BroadcastProgress (CP_InternetProtocolProgress &inProtocolProgress)

Static Public Member Functions

static void Connect (CP_Object *sender, const CP_String &signalName, CP_Object *receiver, const CP_String &slotName, const bool reciprocal=false)
static void Connect (CP_Object *sender, CP_Object *receiver, const bool reciprocal=false, const CP_String &signalName=kCP_Signal_ValueChanged, const CP_String &slotName=kCP_Slot_SetValue)

Protected Member Functions

Misc
SInt32 ReadLine (CP_Socket *inSocket, CP_String &inOutResult)
Getters
bool IsCommaDelimitedListOfSixOctets (char *p)
void SendCommand (CP_String &inCommand)
void SendCommandWithReply (CP_String &inCommand)
void SendData (CP_String &inData)
void SendData (char *inData, UInt32 inDataLength)
Misc
SInt32 ReadLine (CP_Socket *inSocket, CP_String &inOutResult)
Getters
bool IsCommaDelimitedListOfSixOctets (char *p)
void SendCommand (CP_String &inCommand)
void SendCommandWithReply (CP_String &inCommand)
void SendData (CP_String &inData)
void SendData (char *inData, UInt32 inDataLength)
Misc
SInt32 ReadLine (CP_Socket *inSocket, CP_String &inOutResult)
Getters
bool IsCommaDelimitedListOfSixOctets (char *p)
void SendCommand (CP_String &inCommand)
void SendCommandWithReply (CP_String &inCommand)
void SendData (CP_String &inData)
void SendData (char *inData, UInt32 inDataLength)
Misc
SInt32 ReadLine (CP_Socket *inSocket, CP_String &inOutResult)
Getters
bool IsCommaDelimitedListOfSixOctets (char *p)
void SendCommand (CP_String &inCommand)
void SendCommandWithReply (CP_String &inCommand)
void SendData (CP_String &inData)
void SendData (char *inData, UInt32 inDataLength)
Misc
SInt32 ReadLine (CP_Socket *inSocket, CP_String &inOutResult)
Getters
bool IsCommaDelimitedListOfSixOctets (char *p)
void SendCommand (CP_String &inCommand)
void SendCommandWithReply (CP_String &inCommand)
void SendData (CP_String &inData)
void SendData (char *inData, UInt32 inDataLength)

Protected Attributes

SMTPConnectState fConnectState
CP_SocketfSocketConnection
CP_InternetResponsefLastServerResponse
CP_DataValueSignal fProgressSignal
CP_Signals_ArrayfSignals
CP_Slots_ArrayfSlots
FourCharCode fObjectID

Static Protected Attributes

static FourCharCode fObjectIDCount = 0

Member Enumeration Documentation

anonymous enum
 

Enumeration values:
kCP_SMTPPortNumber 

enum CP_SMTP::SMTPConnectState
 

Enumeration values:
kCP_SMTPClosed 
kCP_SMTPConnected 


Constructor & Destructor Documentation

CPLAT_Begin_Namespace_CPLAT CP_SMTP::CP_SMTP CP_Socket inSocketConnection  ) 
 

Constructor.

Parameters:
inSocketConnection The socket connection to the SMTP server.
Exceptions:
none 

CP_SMTP::~CP_SMTP  )  throw () [virtual]
 

Constructor.

Exceptions:
none 


Member Function Documentation

void CP_SMTP::Connect const CP_String inAddress,
SInt16  inPortNumber = CP_SMTP::kCP_SMTPPortNumber
 

Connects to the SMTP server.

Parameters:
inAddress Address of the server to connect to.
inPortNumber Port of the server.
Exceptions:
none 
Returns:
void

void CP_SMTP::WaitForServerID  ) 
 

Waits for the server to respond with an ID.

Exceptions:
OSError/Response exceptions.
Returns:
void

void CP_SMTP::SendDATA  ) 
 

Sends the DATA command to the server.

Exceptions:
OSError/Response exceptions.
Returns:
void

void CP_SMTP::SendHELO const CP_String inAddress  ) 
 

Sends the HELLO command to the server.

Parameters:
inAddress Address of the server.
Exceptions:
OSError/Response exceptions.
Returns:
void

void CP_SMTP::SendQUIT  ) 
 

Sends the QUIT command to the server.

Exceptions:
OSError/Response exceptions.
Returns:
void

void CP_SMTP::SendRSET  ) 
 

Sends the RSET command to the server.

Exceptions:
OSError/Response exceptions.
Returns:
void

void CP_SMTP::SendMAIL const CP_String inFrom  ) 
 

Sends the MAIL command to the server.

Parameters:
inFrom From field for the MAIL command.
Exceptions:
OSError/Response exceptions.
Returns:
void

void CP_SMTP::SendRCPT const CP_String inTo  ) 
 

Sends the RCPT command to the server.

Parameters:
inTo To field for the RCPT command.
Exceptions:
OSError/Response exceptions.
Returns:
void

void CP_SMTP::SendRCPT CP_Strings_Array inList  ) 
 

Send the RCPT command to the server for each address in the passed in list.

Parameters:
inList List of address to send command to.
Exceptions:
OSError/Response exceptions.
Returns:
void

void CP_SMTP::SendOneMessage CP_MailMessage inMailMessage  ) 
 

Sends the passed in CP_MailMessage to the SMTP server.

Parameters:
inMailMessage The message to send to the server.
Exceptions:
OSError/Response exceptions.
Returns:
void

void CP_SMTP::SendMessageData CP_MailMessage inMailMessage  ) 
 

void CP_SMTP::SendSMTPEncodeData const CP_String inMessageData  ) 
 

Send some data encoded for proper transmission through SMTP servers.

Parameters:
inMessageData The data to be encoded, and then sent.
Exceptions:
OSError/Response exceptions.
Returns:
void

virtual CP_InternetResponse* CP_NetProtoBase::GetServerResponse  )  [virtual, inherited]
 

Returns the last server response.

Exceptions:
none 
Returns:
CP_InternetResponse * The internet response for this protocol.

void CP_NetProtoBase::BroadcastProgress CP_InternetProtocolProgress inProtocolProgress  )  [inherited]
 

Broadcast our progress information to any objects that have added themselves as listeners to this object. This will send the signal kCP_Signal_InternetProgress which listeners should connect a slot to.

Parameters:
inProtocolProgress The internnet protocol progress object that contains the progress information. This is also the value of the data value holder for the signal being sent.
Exceptions:
none 
Returns:
void

SInt32 CP_NetProtoBase::ReadLine CP_Socket inSocket,
CP_String inOutResult
[protected, inherited]
 

Receive the next line from our server. We keep receiving until the end of line is reached.

Parameters:
inSocket The socket connection to the server. inOutResult Loction to return the result in.
Exceptions:
none 
Returns:
SInt32 A result code, either CP_noErr or CP_Err_ReceivingFromSocket.

bool CP_NetProtoBase::IsCommaDelimitedListOfSixOctets char *  p  )  [protected, inherited]
 

Return true if our passed in string is in the form of a 6 part address. (h1,h2,h3,h4,p1,p2)

Parameters:
p The string we are checking.
Exceptions:
none 
Returns:
bool True if the passed in string is in the form of a 6 part address.

void CP_NetProtoBase::SendCommand CP_String inCommand  )  [protected, inherited]
 

Sends a command to the server, but does not wait for a response.

Parameters:
inCommand The command to send.
Exceptions:
none 
Returns:
void

void CP_NetProtoBase::SendCommandWithReply CP_String inCommand  )  [protected, inherited]
 

Send the command, and wait for a response. The response will be placed in the CP_InternetResponse object associated with this object.

Parameters:
inCommand The command to send.
Exceptions:
none 
Returns:
void

void CP_NetProtoBase::SendData CP_String inData  )  [protected, inherited]
 

Send data to our socket connection. inData needs to be formatted correctly since we just send the bytes.

Parameters:
inData The data we are sending.
Exceptions:
none 
Returns:
void

void CP_NetProtoBase::SendData char *  inData,
UInt32  inDataLength
[protected, inherited]
 

Send data to our socket connection. inData needs to be formatted correctly since we just send the bytes.

Parameters:
inData The data we are sending.
inDataLength The length of the data being sent.
Exceptions:
none 
Returns:
void

void CP_Object::SetID FourCharCode  inIdentifier  )  [inherited]
 

Sets the identifier for this object. If a specific identifier is not set with this function, then a default id is used, which is simply a running count of the number of objects created.

Parameters:
inIdentifier The objects identifier.
Returns:
void

FourCharCode CP_Object::GetID  )  [inherited]
 

Returns the objects identifier.

Returns:
FourCharCode The identifier of this object.

void CP_Object::RegisterSignal const CP_SignalHolder inSignal  )  [inherited]
 

Registers the signal / signal name contained in the passed in inSignal object.

Parameters:
inSignal CP_SignalHolder that holds a signal and string identifier.
Returns:
void

CP_DataValueSignal * CP_Object::FindSignal const CP_String inSignalName  )  [inherited]
 

Finds the CP_DataValueSignal object that matches the passed in inSignalName.

Parameters:
inSignalName CP_String containing the identifier of the signal to return.
Returns:
CP_DataValueSignal * Returns a pointer to a CP_DataValueSignal object.

UInt32 CP_Object::GetNumberSignals  )  [inherited]
 

Returns the number of signals for this object.

Returns:
UInt32 The number of signals.

CP_String CP_Object::GetNthSignalName UInt32  inSignalIndex  )  [inherited]
 

Returns the signal name of the passed in signal index.

Parameters:
inSignalIndex Index of the name of the signal to return.
Returns:
CP_String The name of the nth signal being returned.

void CP_Object::RegisterSlot const CP_SlotHolder inSlot  )  [inherited]
 

Registers the slot / slot name contained in the passed in inSlot object.

Parameters:
inSlot CP_SignalHolder that holds a slot and string identifier.
Returns:
void

CP_DataValueSlot CP_Object::FindSlot const CP_String inSlotName  )  [inherited]
 

Finds the CP_Slot1 object that matches the passed in inSlotName.

Parameters:
inSlotName CP_String containing the identifier of the slot to return.
Returns:
CP_DataValueSlot Returns a pointer to a CP_DataValueSlot object.

UInt32 CP_Object::GetNumberSlots  )  [inherited]
 

Returns the number of slots for this object.

Returns:
UInt32 The number of slots.

CP_String CP_Object::GetNthSlotName UInt32  inSlotIndex  )  [inherited]
 

Returns the slot name of the passed in signal index.

Parameters:
inSlotIndex Index of the name of the slot to return.
Returns:
CP_String The name of the nth slot being returned.

template<class R, class P1, class P2>
CP_CommandHandlerSignal* CP_Object::Connect CPLAT::CP_CommandNo  cmd,
void(R::*)(P1, P2)  handler,
SInt32  mode
[inherited]
 

template<class R, class P1, class P2>
void CP_Object::Connect CP_Object control,
const CPLAT::CP_String &  signalName,
void(R::*)(P1, P2)  handler
[inherited]
 

void CP_Object::Connect CP_Object sender,
const CP_String signalName,
CP_Object receiver,
const CP_String slotName,
const bool  reciprocal = false
[static, inherited]
 

void CP_Object::Connect CP_Object sender,
CP_Object receiver,
const bool  reciprocal = false,
const CP_String signalName = kCP_Signal_ValueChanged,
const CP_String slotName = kCP_Slot_SetValue
[static, inherited]
 


Member Data Documentation

SMTPConnectState CP_SMTP::fConnectState [protected]
 

CP_Socket* CP_NetProtoBase::fSocketConnection [protected, inherited]
 

CP_InternetResponse* CP_NetProtoBase::fLastServerResponse [protected, inherited]
 

The CP_Socket object that communicates between CPLAT and the server.

CP_DataValueSignal CP_NetProtoBase::fProgressSignal [protected, inherited]
 

This object contains the last response for the server, each different protocol class will implement its own response class to handle server responses.

CP_Signals_Array* CP_Object::fSignals [protected, inherited]
 

CP_Slots_Array* CP_Object::fSlots [protected, inherited]
 

List of registered signals for this object.

FourCharCode CP_Object::fObjectID [protected, inherited]
 

List of registered slots for this object.

CPLAT_Begin_Namespace_CPLAT FourCharCode CP_Object::fObjectIDCount = 0 [static, protected, inherited]
 

Object identifier.


The documentation for this class was generated from the following files:
Generated on Tue Sep 20 20:22:09 2005 for CPLAT_MacOS by  doxygen 1.4.0