class PSMTPServer

A TCP/IP socket for the Simple Mail Transfer Protocol.

Inheritance:


Protected Methods

[more]virtual BOOL OnUnknown ( const PCaselessString & command )
Handle an unknown command.
[more]virtual BOOL OnTextData (PCharArray & buffer, BOOL & completed)
Read a standard text message that is being received by the socket.
[more]virtual BOOL OnMIMEData (PCharArray & buffer, BOOL & completed)
Read an eight bit MIME message that is being received by the socket.


Inherited from PSMTP:


Inherited from PInternetProtocol:

Public Methods

ovirtual BOOL Read( void* buf, PINDEX len )
ovirtual BOOL Write( const void* buf, PINDEX len )
ovoid SetReadLineTimeout( const PTimeInterval & t )
ovirtual BOOL Connect( const PString & address, WORD port = 0 )
ovirtual BOOL Accept( PSocket & listener )
oconst PString& GetDefaultService() const
oPIPSocket* GetSocket() const
ovirtual BOOL WriteLine( const PString & line )
ovirtual BOOL ReadLine( PString & line, BOOL allowContinuation = FALSE )
ovirtual void UnRead( int ch )
ovirtual BOOL WriteCommand( PINDEX cmdNumber )
ovirtual BOOL ReadCommand( PINDEX & num, PString & args )
ovirtual BOOL WriteResponse( unsigned numericCode, const PString & info )
ovirtual BOOL ReadResponse()
ovirtual int ExecuteCommand( PINDEX cmdNumber )
oint GetLastResponseCode() const
oPString GetLastResponseInfo() const

Protected Methods

ovirtual PINDEX ParseResponse( const PString & line )


Inherited from PIndirectChannel:

Public Methods

Construction

Overrides from class PObject

Overrides from class PChannel

Channel establish functions

Protected Fields

oPChannel* readChannel
oBOOL readAutoDelete
oPChannel* writeChannel
oBOOL writeAutoDelete
oPReadWriteMutex channelPointerMutex

Protected Methods

ovirtual BOOL OnOpen()


Inherited from PChannel:

Public Methods

Information functions

Reading functions

Writing functions

Miscellaneous functions

ostatic BOOL ConvertOSError( int libcReturnValue, Errors & lastError, int & osError )

Public Members

Error functions

Protected Fields

oint os_handle
oErrors lastErrorCode[NumErrorGroups+1]
oint lastErrorNumber[NumErrorGroups+1]
oPINDEX lastReadCount
oPINDEX lastWriteCount
oPTimeInterval readTimeout
oPTimeInterval writeTimeout

Protected Methods

ovirtual BOOL ConvertOSError( int libcReturnValue, ErrorGroup group = LastGeneralError )
oBOOL SetErrorValues( Errors errorCode, int osError, ErrorGroup group = LastGeneralError )
oint ReadCharWithTimeout( PTimeInterval & timeout )


Inherited from PObject:

Public Methods

Run Time Type functions

I/O functions

Public Members

Comparison functions


Documentation

A TCP/IP socket for the Simple Mail Transfer Protocol.

When acting as a client, the procedure is to make the connection to a remote server, then to send a message using the following procedure: <PRE><CODE> PSMTPSocket mail("mailserver"); if (mail.IsOpen()) { mail.BeginMessage("Me@here.com.au", "Fred@somwhere.com"); mail.Write(myMessage); if (!mail.EndMessage()) PError << "Mail send failed." << endl; } else PError << "Mail conection failed." << endl; </PRE></CODE>

When acting as a server, a descendant class would be created to override at least the <A>LookUpName()</A> and <A>HandleMessage()</A> functions. Other functions may be overridden for further enhancement to the sockets capabilities, but these two will give a basic SMTP server functionality.

The server socket thread would continuously call the <A>ProcessMessage()</A> function until it returns FALSE. This will then call the appropriate virtual function on parsing the SMTP protocol.

ovirtual BOOL OnUnknown( const PCaselessString & command )
Handle an unknown command.

Returns:
TRUE if more processing may be done, FALSE if the <A>ProcessCommand()</A> function is to return FALSE.

ovirtual BOOL OnTextData(PCharArray & buffer, BOOL & completed)
Read a standard text message that is being received by the socket. The text message is terminated by a line with a '.' character alone.

The default behaviour is to read the data into the <CODE>buffer</CODE> parameter until either the end of the message or when the <CODE>messageBufferSize</CODE> bytes have been read.

Returns:
TRUE if partial message received, FALSE if the end of the data was received.

ovirtual BOOL OnMIMEData(PCharArray & buffer, BOOL & completed)
Read an eight bit MIME message that is being received by the socket. The MIME message is terminated by the CR/LF/./CR/LF sequence.

The default behaviour is to read the data into the <CODE>buffer</CODE> parameter until either the end of the message or when the <CODE>messageBufferSize</CODE> bytes have been read.

Returns:
TRUE if partial message received, FALSE if the end of the data was received.


This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java



This page was generated with the help of DOC++.