All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
inetmail.h
Go to the documentation of this file.
/*
* inetmail.h
*
* Internet Mail channel classes
* Simple Mail Transport Protocol & Post Office Protocol v3
*
* Portable Windows Library
*
* Copyright (c) 1993-2002 Equivalence Pty. Ltd.
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Portable Windows Library.
*
* The Initial Developer of the Original Code is Equivalence Pty. Ltd.
*
* Contributor(s): Federico Pinna and Reitek S.p.A.
*
* $Revision: 25387 $
* $Author: rjongbloed $
* $Date: 2011-03-22 22:51:09 -0500 (Tue, 22 Mar 2011) $
*/
#ifndef PTLIB_INETMAIL_H
#define PTLIB_INETMAIL_H
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#include <ptclib/inetprot.h>
#include <ptclib/mime.h>
class PSocket;
// PSMTP
class PSMTP : public PInternetProtocol
{
PCLASSINFO(PSMTP, PInternetProtocol)
public:
// New functions for class.
enum Commands {
HELO, EHLO, QUIT, HELP, NOOP,
TURN, RSET, VRFY, EXPN, RCPT,
MAIL, SEND, SAML, SOML, DATA,
AUTH, NumCommands
};
protected:
PSMTP();
// Create a new SMTP protocol channel.
};
class PSMTPClient : public PSMTP
{
PCLASSINFO(PSMTPClient, PSMTP)
public:
PSMTPClient();
~PSMTPClient();
// Overrides from class PChannel.
virtual PBoolean Close();
// New functions for class.
PBoolean LogIn(
const PString & username,
const PString & password
);
PBoolean BeginMessage(
const PString & from,
const PString & to,
PBoolean eightBitMIME = false
);
PBoolean BeginMessage(
const PString & from,
const PStringList & toList,
PBoolean eightBitMIME = false
);
PBoolean EndMessage();
protected:
PBoolean OnOpen();
PBoolean haveHello;
PBoolean extendedHello;
PBoolean eightBitMIME;
PString fromAddress;
PStringList toNames;
PBoolean sendingData;
private:
bool InternalBeginMessage();
};
class PSMTPServer : public PSMTP
{
PCLASSINFO(PSMTPServer, PSMTP)
public:
PSMTPServer();
// New functions for class.
PBoolean ProcessCommand();
void ServerReset();
// Reset the state of the SMTP server socket.
enum ForwardResult {
LocalDomain,
WillForward,
CannotForward
};
// Result of forward check
virtual ForwardResult ForwardDomain(
PCaselessString & userDomain,
PCaselessString & forwardDomainList
);
enum LookUpResult {
ValidUser,
AmbiguousUser,
UnknownUser,
LookUpError
};
// Result of user name look up
virtual LookUpResult LookUpName(
const PCaselessString & name,
PString & expandedName
);
virtual PBoolean HandleMessage(
PCharArray & buffer,
PBoolean starting,
PBoolean completed
);
protected:
PBoolean OnOpen();
virtual void OnHELO(
const PCaselessString & remoteHost
);
// Start connection.
virtual void OnEHLO(
const PCaselessString & remoteHost
);
// Start extended SMTP connection.
virtual void OnQUIT();
// close connection and die.
virtual void OnHELP();
// get help.
virtual void OnNOOP();
// do nothing
virtual void OnTURN();
// switch places
virtual void OnRSET();
// Reset state.
virtual void OnVRFY(
const PCaselessString & name
);
// Verify address.
virtual void OnEXPN(
const PCaselessString & name
);
// Expand alias.
virtual void OnRCPT(
const PCaselessString & recipient
);
// Designate recipient
virtual void OnMAIL(
const PCaselessString & sender
);
// Designate sender
virtual void OnSEND(
const PCaselessString & sender
);
// send message to screen
virtual void OnSAML(
const PCaselessString & sender
);
// send AND mail
virtual void OnSOML(
const PCaselessString & sender
);
// send OR mail
virtual void OnDATA();
// Message text.
virtual PBoolean OnUnknown(
const PCaselessString & command
);
virtual void OnSendMail(
const PCaselessString & sender
);
// Common code for OnMAIL(), OnSEND(), OnSOML() and OnSAML() funtions.
virtual PBoolean OnTextData(PCharArray & buffer, PBoolean & completed);
virtual PBoolean OnMIMEData(PCharArray & buffer, PBoolean & completed);
// Member variables
PBoolean extendedHello;
PBoolean eightBitMIME;
PString fromAddress;
PString fromPath;
PStringList toNames;
PStringList toDomains;
PINDEX messageBufferSize;
enum { WasMAIL, WasSEND, WasSAML, WasSOML } sendCommand;
StuffState endMIMEDetectState;
};
// PPOP3
class PPOP3 : public PInternetProtocol
{
PCLASSINFO(PPOP3, PInternetProtocol)
public:
enum Commands {
USER, PASS, QUIT, RSET, NOOP, STATcmd,
LIST, RETR, DELE, APOP, TOP, UIDL,
AUTH, NumCommands
};
protected:
PPOP3();
virtual PINDEX ParseResponse(
const PString & line
);
// Member variables
static const PString & okResponse();
static const PString & errResponse();
};
class PPOP3Client : public PPOP3
{
PCLASSINFO(PPOP3Client, PPOP3)
public:
PPOP3Client();
~PPOP3Client();
// Overrides from class PChannel.
virtual PBoolean Close();
// New functions for class.
enum LoginOptions
{
AllowUserPass = 1,
UseSASL = 2,
AllowClearTextSASL = 4
};
PBoolean LogIn(
const PString & username,
const PString & password,
int options = AllowUserPass
);
int GetMessageCount();
PUnsignedArray GetMessageSizes();
PStringArray GetMessageHeaders();
/* Begin the retrieval of an entire message. The application may then use
the <A>PApplicationSocket::ReadLine()</A> function with the
<CODE>unstuffLine</CODE> parameter set to true. Repeated calls until
its return valus is false will read the message headers and body.
@return
Array of strings continaing message headers.
*/
PBoolean BeginMessage(
PINDEX messageNumber
);
PBoolean DeleteMessage(
PINDEX messageNumber
/* Number of message to retrieve. This is an integer from 1 to the
maximum number of messages available.
*/
);
protected:
PBoolean OnOpen();
// Member variables
PBoolean loggedIn;
PString apopBanner;
};
class PPOP3Server : public PPOP3
{
PCLASSINFO(PPOP3Server, PPOP3)
public:
PPOP3Server();
// New functions for class.
PBoolean ProcessCommand();
virtual PBoolean HandleOpenMailbox(
const PString & username,
const PString & password
);
virtual void HandleSendMessage(
PINDEX messageNumber,
const PString & id,
PINDEX lines
);
virtual void HandleDeleteMessage(
PINDEX messageNumber,
const PString & id
);
protected:
PBoolean OnOpen();
virtual void OnUSER(
const PString & name
);
// Specify user name (mailbox).
virtual void OnPASS(
const PString & passwd
);
// Specify password and log user in.
virtual void OnQUIT();
// End connection, saving all changes (delete messages).
virtual void OnRSET();
// Reset connection (undelete messages).
virtual void OnNOOP();
// Do nothing.
virtual void OnSTAT();
// Get number of messages in mailbox.
virtual void OnLIST(
PINDEX msg
);
virtual void OnRETR(
PINDEX msg
);
// Retrieve a message from mailbox.
virtual void OnDELE(
PINDEX msg
);
// Delete a message from mailbox.
virtual void OnTOP(
PINDEX msg,
PINDEX count
);
// Get the message header and top <CODE>count</CODE> lines of message.
virtual void OnUIDL(
PINDEX msg
);
virtual PBoolean OnUnknown(
const PCaselessString & command
);
// Member variables
PString username;
PUnsignedArray messageSizes;
PStringArray messageIDs;
PBYTEArray messageDeletions;
};
class PRFC822Channel : public PIndirectChannel
{
PCLASSINFO(PRFC822Channel, PIndirectChannel);
public:
enum Direction {
Sending,
Receiving
};
PRFC822Channel(
Direction direction
);
~PRFC822Channel();
// Overrides from class PChannel.
PBoolean Close();
virtual PBoolean Write(
const void * buf,
PINDEX len
);
void NewMessage(
Direction direction
);
PString MultipartMessage();
PBoolean MultipartMessage(
const PString & boundary
);
void NextPart(
const PString & boundary
);
void SetFromAddress(
const PString & fromAddress
);
void SetToAddress(
const PString & toAddress
);
void SetCC(
const PString & ccAddress
);
void SetBCC(
const PString & bccAddress
);
void SetSubject(
const PString & subject
);
void SetContentType(
const PString & contentType
);
void SetContentAttachment(
const PFilePath & filename
);
void SetTransferEncoding(
const PString & encoding,
PBoolean autoTranslate = true
);
void SetHeaderField(
const PString & name,
const PString & value
);
// Common MIME header tags
static const PCaselessString & MimeVersionTag();
static const PCaselessString & FromTag();
static const PCaselessString & ToTag();
static const PCaselessString & CCTag();
static const PCaselessString & BCCTag();
static const PCaselessString & SubjectTag();
static const PCaselessString & DateTag();
static const PCaselessString & ReturnPathTag();
static const PCaselessString & ReceivedTag();
static const PCaselessString & MessageIDTag();
static const PCaselessString & MailerTag();
static const PCaselessString & ContentTypeTag() { return PMIMEInfo::ContentTypeTag(); }
static const PCaselessString & ContentDispositionTag() { return PMIMEInfo::ContentDispositionTag(); }
static const PCaselessString & ContentTransferEncodingTag() { return PMIMEInfo::ContentTransferEncodingTag(); }
PBoolean SendWithSMTP(
const PString & hostname
);
PBoolean SendWithSMTP(
PSMTPClient * smtp
);
protected:
PBoolean OnOpen();
PBoolean writeHeaders;
PMIMEInfo headers;
PBoolean writePartHeaders;
PMIMEInfo partHeaders;
PStringList boundaries;
PBase64 * base64;
};
#endif // PTLIB_INETMAIL_H
// End Of File ///////////////////////////////////////////////////////////////
PRFC822Channel::NewMessage
void NewMessage(Direction direction)
Begin a new message.
PSMTPClient::eightBitMIME
PBoolean eightBitMIME
Definition: inetmail.h:181
PRFC822Channel::SubjectTag
static const PCaselessString & SubjectTag()
PSMTPServer::eightBitMIME
PBoolean eightBitMIME
Definition: inetmail.h:408
PRFC822Channel::Sending
Definition: inetmail.h:815
inetprot.h
PSMTPServer::HandleMessage
virtual PBoolean HandleMessage(PCharArray &buffer, PBoolean starting, PBoolean completed)
Handle a received message.
PMIMEInfo::ContentTypeTag
static const PCaselessString & ContentTypeTag()
PPOP3::STATcmd
Definition: inetmail.h:465
PMIMEInfo
This class contains the Multipurpose Internet Mail Extensions parameters and variables.
Definition: mime.h:52
PRFC822Channel::ContentTransferEncodingTag
static const PCaselessString & ContentTransferEncodingTag()
Definition: inetmail.h:991
PSMTPServer::WasSOML
Definition: inetmail.h:414
PRFC822Channel::Receiving
Definition: inetmail.h:816
PSMTPServer::OnHELO
virtual void OnHELO(const PCaselessString &remoteHost)
PPOP3Server::OnSTAT
virtual void OnSTAT()
PPOP3Client::AllowUserPass
Allow the use of the plain old USER/PASS if APOP or SASL are not available.
Definition: inetmail.h:553
PPOP3Server
A TCP/IP socket for the Post Office Protocol version 3.
Definition: inetmail.h:647
PSMTPServer::OnEHLO
virtual void OnEHLO(const PCaselessString &remoteHost)
PPOP3Server::messageSizes
PUnsignedArray messageSizes
Definition: inetmail.h:779
PPOP3Server::OnPASS
virtual void OnPASS(const PString &passwd)
PCharArray
Array of characters.
Definition: array.h:551
PSMTPServer::WasSEND
Definition: inetmail.h:414
PRFC822Channel::SetFromAddress
void SetFromAddress(const PString &fromAddress)
Set the sender address.
PCLASSINFO
#define PCLASSINFO(cls, par)
Declare all the standard PTLib class information.
Definition: object.h:1049
PPOP3::okResponse
static const PString & okResponse()
PSMTPServer::PSMTPServer
PSMTPServer()
Create a TCP/IP SMPTP protocol socket channel.
PSMTPServer::OnTextData
virtual PBoolean OnTextData(PCharArray &buffer, PBoolean &completed)
Read a standard text message that is being received by the socket.
PSMTPServer::OnQUIT
virtual void OnQUIT()
PRFC822Channel::Write
virtual PBoolean Write(const void *buf, PINDEX len)
Low level write to the channel.
PRFC822Channel::writePartHeaders
PBoolean writePartHeaders
Definition: inetmail.h:1015
PSMTPServer::AmbiguousUser
User name was valid but ambiguous.
Definition: inetmail.h:263
PRFC822Channel::Direction
Direction
Definition: inetmail.h:814
PBase64
This class is used to encode/decode data using the MIME standard base64 encoding mechanism as defined...
Definition: cypher.h:70
PSMTPServer::OnMAIL
virtual void OnMAIL(const PCaselessString &sender)
PRFC822Channel::MessageIDTag
static const PCaselessString & MessageIDTag()
PRFC822Channel::MultipartMessage
PString MultipartMessage()
Enter multipart MIME message mode.
PSMTP::NumCommands
Definition: inetmail.h:83
PPOP3::LIST
Definition: inetmail.h:466
PRFC822Channel::SetContentType
void SetContentType(const PString &contentType)
Set the content type.
PRFC822Channel::SetHeaderField
void SetHeaderField(const PString &name, const PString &value)
Set the and arbitrary header field.
PRFC822Channel
A channel for sending/receiving RFC822 compliant mail messages.
Definition: inetmail.h:810
PSMTPServer::OnDATA
virtual void OnDATA()
PPOP3::USER
Definition: inetmail.h:465
PPOP3Server::HandleSendMessage
virtual void HandleSendMessage(PINDEX messageNumber, const PString &id, PINDEX lines)
Handle the sending of the specified message to the remote client.
PRFC822Channel::OnOpen
PBoolean OnOpen()
This callback is executed when the Open() function is called with open channels.
PSMTPServer::UnknownUser
User name was invalid.
Definition: inetmail.h:264
PRFC822Channel::SetCC
void SetCC(const PString &ccAddress)
Set the Carbon Copy address(es).
PSMTPServer::ForwardResult
ForwardResult
Definition: inetmail.h:243
PPOP3::RETR
Definition: inetmail.h:466
PSMTPServer::messageBufferSize
PINDEX messageBufferSize
Definition: inetmail.h:413
PRFC822Channel::SetToAddress
void SetToAddress(const PString &toAddress)
Set the recipient address(es).
PPOP3::DELE
Definition: inetmail.h:466
PPOP3Server::OnUnknown
virtual PBoolean OnUnknown(const PCaselessString &command)
Handle an unknown command.
PSMTP::RCPT
Definition: inetmail.h:81
PRFC822Channel::SetSubject
void SetSubject(const PString &subject)
Set the message subject.
PFilePath
This class describes a full description for a file on the particular platform.
Definition: filepath.h:65
PPOP3Server::messageIDs
PStringArray messageIDs
Definition: inetmail.h:780
PPOP3Client::LoginOptions
LoginOptions
Definition: inetmail.h:551
PSMTP::TURN
Definition: inetmail.h:81
PPOP3::AUTH
Definition: inetmail.h:467
PSMTPClient::sendingData
PBoolean sendingData
Definition: inetmail.h:184
PRFC822Channel::ReceivedTag
static const PCaselessString & ReceivedTag()
PIndirectChannel
This is a channel that operates indirectly through another channel(s).
Definition: indchan.h:49
PSMTPClient::toNames
PStringList toNames
Definition: inetmail.h:183
PCaselessString
This class is a variation of a string that ignores case.
Definition: pstring.h:1708
PSMTPServer::LocalDomain
User may be on local machine, do LookUpName().
Definition: inetmail.h:244
PPOP3Server::ProcessCommand
PBoolean ProcessCommand()
Process commands, dispatching to the appropriate virtual function.
PSMTPServer::OnHELP
virtual void OnHELP()
PRFC822Channel::ContentTypeTag
static const PCaselessString & ContentTypeTag()
Definition: inetmail.h:989
PSMTP
A TCP/IP socket for the Simple Mail Transfer Protocol.
Definition: inetmail.h:73
PPOP3Server::OnLIST
virtual void OnLIST(PINDEX msg)
Get the size of a message in mailbox.
PPOP3Client::loggedIn
PBoolean loggedIn
Definition: inetmail.h:630
PRFC822Channel::ToTag
static const PCaselessString & ToTag()
PRFC822Channel::CCTag
static const PCaselessString & CCTag()
PPOP3::NOOP
Definition: inetmail.h:465
PPOP3Client::GetMessageSizes
PUnsignedArray GetMessageSizes()
Get an array of a integers representing the sizes of each of the messages in the mail box...
PStringArray
This is an array collection class of PString objects.
Definition: pstring.h:2024
PPOP3Server::messageDeletions
PBYTEArray messageDeletions
Definition: inetmail.h:781
PSMTPClient::OnOpen
PBoolean OnOpen()
This callback is executed when the Open() function is called with open channels.
PSMTP::NOOP
Definition: inetmail.h:80
PSMTPServer::OnRCPT
virtual void OnRCPT(const PCaselessString &recipient)
PSMTP::QUIT
Definition: inetmail.h:80
PRFC822Channel::headers
PMIMEInfo headers
Definition: inetmail.h:1014
PSMTP::AUTH
Definition: inetmail.h:83
PSMTP::RSET
Definition: inetmail.h:81
PSMTPClient
A TCP/IP socket for the Simple Mail Transfer Protocol.
Definition: inetmail.h:108
PPOP3Client::~PPOP3Client
~PPOP3Client()
Destroy the channel object.
PInternetProtocol
A TCP/IP socket for process/application layer high level protocols.
Definition: inetprot.h:62
PSMTPServer::LookUpResult
LookUpResult
Definition: inetmail.h:261
PPOP3Client::BeginMessage
PBoolean BeginMessage(PINDEX messageNumber)
PPOP3::TOP
Definition: inetmail.h:466
PRFC822Channel::DateTag
static const PCaselessString & DateTag()
PBoolean
BOOL PBoolean
Definition: object.h:102
PSMTPClient::~PSMTPClient
~PSMTPClient()
Destroy the channel object.
PPOP3Client::PPOP3Client
PPOP3Client()
Create a TCP/IP POP3 protocol socket channel.
PSMTPServer::OnSOML
virtual void OnSOML(const PCaselessString &sender)
PPOP3::RSET
Definition: inetmail.h:465
PSMTPServer::OnTURN
virtual void OnTURN()
PBYTEArray
Array of unsigned characters.
Definition: array.h:670
PRFC822Channel::MimeVersionTag
static const PCaselessString & MimeVersionTag()
PPOP3Client::LogIn
PBoolean LogIn(const PString &username, const PString &password, int options=AllowUserPass)
Log into the POP server using the mailbox and access codes specified.
PPOP3::QUIT
Definition: inetmail.h:465
PSMTP::Commands
Commands
Definition: inetmail.h:79
PPOP3Client
A TCP/IP socket for the Post Office Protocol version 3.
Definition: inetmail.h:522
PSMTPServer::sendCommand
enum PSMTPServer::@23 sendCommand
PSMTP::HELO
Definition: inetmail.h:80
PSMTPServer::ForwardDomain
virtual ForwardResult ForwardDomain(PCaselessString &userDomain, PCaselessString &forwardDomainList)
Determine if a user for this domain may be on the local system, or should be forwarded.
mime.h
PSMTPServer::OnMIMEData
virtual PBoolean OnMIMEData(PCharArray &buffer, PBoolean &completed)
Read an eight bit MIME message that is being received by the socket.
PSMTPServer::OnUnknown
virtual PBoolean OnUnknown(const PCaselessString &command)
Handle an unknown command.
PMIMEInfo::ContentDispositionTag
static const PCaselessString & ContentDispositionTag()
PPOP3::PASS
Definition: inetmail.h:465
PPOP3Server::HandleDeleteMessage
virtual void HandleDeleteMessage(PINDEX messageNumber, const PString &id)
Handle the deleting of the specified message from the mail box.
PSMTPServer::WillForward
User may be forwarded to another SMTP host.
Definition: inetmail.h:245
PSMTPClient::PSMTPClient
PSMTPClient()
Create a TCP/IP SMPTP protocol socket channel.
PSMTP::EXPN
Definition: inetmail.h:81
PRFC822Channel::~PRFC822Channel
~PRFC822Channel()
Close the channel before destruction.
PSMTPClient::Close
virtual PBoolean Close()
Close the socket, and if connected as a client, QUITs from server.
PMIMEInfo::ContentTransferEncodingTag
static const PCaselessString & ContentTransferEncodingTag()
PSMTPServer::OnEXPN
virtual void OnEXPN(const PCaselessString &name)
PSMTPClient::fromAddress
PString fromAddress
Definition: inetmail.h:182
PSMTPClient::BeginMessage
PBoolean BeginMessage(const PString &from, const PString &to, PBoolean eightBitMIME=false)
Begin transmission of a message using the SMTP socket as a client.
PRFC822Channel::SetContentAttachment
void SetContentAttachment(const PFilePath &filename)
Set the content disposition for attachments.
PPOP3Client::GetMessageHeaders
PStringArray GetMessageHeaders()
Get an array of a strings representing the standard internet message headers of each of the messages ...
PPOP3::ParseResponse
virtual PINDEX ParseResponse(const PString &line)
Parse a response line string into a response code and any extra info on the line. ...
PSMTPClient::haveHello
PBoolean haveHello
Definition: inetmail.h:179
PRFC822Channel::FromTag
static const PCaselessString & FromTag()
PSMTPServer::WasMAIL
Definition: inetmail.h:414
PSMTP::EHLO
Definition: inetmail.h:80
PPOP3
A TCP/IP socket for the Post Office Protocol version 3.
Definition: inetmail.h:459
PPOP3Server::OnDELE
virtual void OnDELE(PINDEX msg)
PPOP3Server::PPOP3Server
PPOP3Server()
Create a TCP/IP POP3 protocol socket channel.
PRFC822Channel::PRFC822Channel
PRFC822Channel(Direction direction)
Construct a RFC822 aware channel.
PRFC822Channel::Close
PBoolean Close()
Close the channel.
PRFC822Channel::NextPart
void NextPart(const PString &boundary)
Indicate that a new multipart message part is to begin.
PString
The character string class.
Definition: pstring.h:108
PSMTPServer::WasSAML
Definition: inetmail.h:414
PPOP3::UIDL
Definition: inetmail.h:466
PRFC822Channel::writeHeaders
PBoolean writeHeaders
Definition: inetmail.h:1013
PUnsignedArray
Array of unsigned integers.
Definition: array.h:737
PSMTP::SAML
Definition: inetmail.h:82
PPOP3::errResponse
static const PString & errResponse()
PSMTPServer::fromPath
PString fromPath
Definition: inetmail.h:410
PPOP3Client::UseSASL
Use SASL if the AUTH command is supported by the server.
Definition: inetmail.h:555
PSMTPServer::OnSEND
virtual void OnSEND(const PCaselessString &sender)
PSMTPClient::LogIn
PBoolean LogIn(const PString &username, const PString &password)
Log into the SMTP server using the mailbox and access codes specified.
PSMTPClient::extendedHello
PBoolean extendedHello
Definition: inetmail.h:180
PPOP3Client::OnOpen
PBoolean OnOpen()
This callback is executed when the Open() function is called with open channels.
PPOP3Client::AllowClearTextSASL
Allow LOGIN and PLAIN mechanisms to be used.
Definition: inetmail.h:557
PPOP3Server::HandleOpenMailbox
virtual PBoolean HandleOpenMailbox(const PString &username, const PString &password)
Log the specified user into the mail system and return sizes of each message in mail box...
PStringList
This is a list collection class of PString objects.
Definition: pstring.h:2184
PSMTP::PSMTP
PSMTP()
PPOP3Server::username
PString username
Definition: inetmail.h:778
PSMTPServer::CannotForward
User cannot be forwarded.
Definition: inetmail.h:246
PRFC822Channel::ReturnPathTag
static const PCaselessString & ReturnPathTag()
PSMTPServer::OnNOOP
virtual void OnNOOP()
PRFC822Channel::SetTransferEncoding
void SetTransferEncoding(const PString &encoding, PBoolean autoTranslate=true)
Set the content transfer encoding.
PSMTPServer::extendedHello
PBoolean extendedHello
Definition: inetmail.h:407
PSMTPServer::LookUpName
virtual LookUpResult LookUpName(const PCaselessString &name, PString &expandedName)
Look up a name in the context of the SMTP server.
PPOP3Client::DeleteMessage
PBoolean DeleteMessage(PINDEX messageNumber)
Delete the message specified from the mail box.
PSMTPServer::toNames
PStringList toNames
Definition: inetmail.h:411
PSMTP::MAIL
Definition: inetmail.h:82
PSMTPServer
A TCP/IP socket for the Simple Mail Transfer Protocol.
Definition: inetmail.h:216
PPOP3Server::OnRSET
virtual void OnRSET()
PSMTP::DATA
Definition: inetmail.h:82
PSMTPServer::ServerReset
void ServerReset()
PSMTPServer::LookUpError
Some other error occurred in look up.
Definition: inetmail.h:265
PSMTP::SEND
Definition: inetmail.h:82
PSMTPServer::endMIMEDetectState
StuffState endMIMEDetectState
Definition: inetmail.h:415
PPOP3Server::OnUIDL
virtual void OnUIDL(PINDEX msg)
Get unique ID for message in mailbox.
PSMTPServer::OnSAML
virtual void OnSAML(const PCaselessString &sender)
PSMTPServer::OnSendMail
virtual void OnSendMail(const PCaselessString &sender)
PSMTPServer::fromAddress
PString fromAddress
Definition: inetmail.h:409
PSMTPServer::toDomains
PStringList toDomains
Definition: inetmail.h:412
PRFC822Channel::BCCTag
static const PCaselessString & BCCTag()
PPOP3::APOP
Definition: inetmail.h:466
PSMTPServer::ValidUser
User name was valid and unique.
Definition: inetmail.h:262
PInternetProtocol::StuffState
StuffState
Definition: inetprot.h:369
PRFC822Channel::SetBCC
void SetBCC(const PString &bccAddress)
Set the Blind Carbon Copy address(es).
PPOP3Server::OnQUIT
virtual void OnQUIT()
PRFC822Channel::MailerTag
static const PCaselessString & MailerTag()
PSMTPServer::OnOpen
PBoolean OnOpen()
This callback is executed when the Open() function is called with open channels.
PPOP3Server::OnNOOP
virtual void OnNOOP()
PRFC822Channel::partHeaders
PMIMEInfo partHeaders
Definition: inetmail.h:1016
PRFC822Channel::base64
PBase64 * base64
Definition: inetmail.h:1018
PSocket
A network communications channel.
Definition: socket.h:58
PSMTPServer::ProcessCommand
PBoolean ProcessCommand()
Process commands, dispatching to the appropriate virtual function.
PPOP3Client::apopBanner
PString apopBanner
Definition: inetmail.h:631
PSMTP::VRFY
Definition: inetmail.h:81
PSMTP::SOML
Definition: inetmail.h:82
PSMTP::HELP
Definition: inetmail.h:80
PRFC822Channel::SendWithSMTP
PBoolean SendWithSMTP(const PString &hostname)
Send this message using an SMTP socket.
PPOP3Server::OnRETR
virtual void OnRETR(PINDEX msg)
PPOP3Client::GetMessageCount
int GetMessageCount()
Get a count of the number of messages in the mail box.
PPOP3::PPOP3
PPOP3()
PPOP3Server::OnUSER
virtual void OnUSER(const PString &name)
PRFC822Channel::ContentDispositionTag
static const PCaselessString & ContentDispositionTag()
Definition: inetmail.h:990
PPOP3::Commands
Commands
Definition: inetmail.h:464
PPOP3Server::OnTOP
virtual void OnTOP(PINDEX msg, PINDEX count)
PSMTPServer::OnVRFY
virtual void OnVRFY(const PCaselessString &name)
PPOP3::NumCommands
Definition: inetmail.h:467
PSMTPServer::OnRSET
virtual void OnRSET()
PPOP3Server::OnOpen
PBoolean OnOpen()
This callback is executed when the Open() function is called with open channels.
PRFC822Channel::boundaries
PStringList boundaries
Definition: inetmail.h:1017
PPOP3Client::Close
virtual PBoolean Close()
Close the socket, and if connected as a client, QUITs from server.
PSMTPClient::EndMessage
PBoolean EndMessage()
End transmission of a message using the SMTP socket as a client.