Class SMTP

SMTP

Classes extended from SMTP:

Located in File: Program_Root/class.smtp.php


STMP is rfc 821 compliant and implements all the rfc 821 SMTP commands except TURN which will always return a not implemented error.
SMTP also provides some utility methods for sending mail
to an SMTP server.

Class Variable Summary
$CRLF
Default Value: ->\r\n<-
$do_debug
Default Value: -><-
$error
Default Value: -><-
$helo_rply
Default Value: -><-
$smtp_conn
Default Value: -><-
$SMTP_PORT
Default Value: ->25<-

Inherited Class Variable Summary

Inherited Method Summary

Method Summary
void constructor SMTP ( )
Initialize the class so that the data is in a known state.
bool Authenticate ( $username, $password )
Performs SMTP authentication. Must be run after running the Hello() method.
void Close ( )
Closes the socket and cleans up the state of the class.
bool Connect ( $host, [$port = 0], [$tval = 30] )
Connect to the server specified on the port specified.
bool Data ( $msg_data )
Issues a data command and sends the msg_data to the server
string Expand ( $name )
Expand takes the name and asks the server to list all the people who are members of the _list_.
bool Hello ( $host )
Sends the HELO command to the smtp server.
string Help ( $keyword )
Gets help information on the keyword specified.
bool Mail ( $from )
Starts a mail transaction from the email address specified in $from. Returns true if successful or false otherwise.
bool Noop ( )
Sends the command NOOP to the SMTP server.
bool Quit ( [$close_on_error = true] )
Sends the quit command to the server and then closes the socket if there is no error or the $close_on_error argument is true.
bool Recipient ( $to )
Sends the command RCPT to the SMTP server with the TO: argument of $to. Returns true if the recipient was accepted false if it was rejected.
bool Reset ( )
Sends the RSET command to abort and transaction that is currently in progress.
bool Send ( $from )
Starts a mail transaction from the email address specified in
bool SendAndMail ( $from )
Starts a mail transaction from the email address specified in
bool SendOrMail ( $from )
Starts a mail transaction from the email address specified in
bool Turn ( )
This is an optional command for SMTP that this class does not support.
int Verify ( $name )
Verifies that the name is recognized by the server.
Variable Detail

$CRLF

Data type: mixed


$do_debug

Data type: mixed


$error

Data type: mixed


$helo_rply

Data type: mixed


$smtp_conn

Data type: mixed


$SMTP_PORT

Data type: mixed



Method Detail

constructor SMTP

void constructor SMTP ( )

Initialize the class so that the data is in a known state.

Function Parameters:
Function Info:
Access - public

Authenticate

bool Authenticate ( $username, $password )

Performs SMTP authentication. Must be run after running the Hello() method.
Returns true if successfully authenticated.
Function Parameters:
Function Info:
Access - public

Close

void Close ( )

Closes the socket and cleans up the state of the class.
It is not considered good to use this function without
first trying to use QUIT.
Function Parameters:
Function Info:
Access - public

Connect

bool Connect ( $host, [$port = 0], [$tval = 30] )

Connect to the server specified on the port specified.
If the port is not specified use the default SMTP_PORT.
If tval is specified then a connection will try and be
established with the server for that number of seconds.
If tval is not specified the default is 30 seconds to
try on the connection.

SMTP CODE SUCCESS: 220
SMTP CODE FAILURE: 421
Function Parameters:
Function Info:
Access - public

Data

bool Data ( $msg_data )

Issues a data command and sends the msg_data to the server
finializing the mail transaction. $msg_data is the message
that is to be send with the headers. Each header needs to be
on a single line followed by a <CRLF> with the message headers
and the message body being seperated by and additional <CRLF>.

Implements rfc 821: DATA <CRLF>

SMTP CODE INTERMEDIATE: 354
    [data]
    <CRLF>.<CRLF>
    SMTP CODE SUCCESS: 250
    SMTP CODE FAILURE: 552,554,451,452
SMTP CODE FAILURE: 451,554
SMTP CODE ERROR  : 500,501,503,421
Function Parameters:
Function Info:
Access - public

Expand

string Expand ( $name )

Expand takes the name and asks the server to list all the people who are members of the _list_.
Expand will return
back and array of the result or false if an error occurs.
Each value in the array returned has the format of:
    [ <full-name> <sp> ] <path>
The definition of <path> is defined in rfc 821

Implements rfc 821: EXPN <SP> <string> <CRLF>

SMTP CODE SUCCESS: 250
SMTP CODE FAILURE: 550
SMTP CODE ERROR  : 500,501,502,504,421
Function Parameters:
Function Info:
Return - array
Access - public

Hello

bool Hello ( $host )

Sends the HELO command to the smtp server.
This makes sure that we and the server are in
the same known state.

Implements from rfc 821: HELO <SP> <domain> <CRLF>

SMTP CODE SUCCESS: 250
SMTP CODE ERROR  : 500, 501, 504, 421
Function Parameters:
Function Info:
Access - public

Help

string Help ( $keyword )

Gets help information on the keyword specified.
If the keyword
is not specified then returns generic help, ussually contianing
A list of keywords that help is available on. This function
returns the results back to the user. It is up to the user to
handle the returned data. If an error occurs then false is
returned with $this->error set appropiately.

Implements rfc 821: HELP [ <SP> <string> ] <CRLF>

SMTP CODE SUCCESS: 211,214
SMTP CODE ERROR  : 500,501,502,504,421
Function Parameters:
Function Info:
Access - public

Mail

bool Mail ( $from )

Starts a mail transaction from the email address specified in $from. Returns true if successful or false otherwise.
If True
the mail transaction is started and then one or more Recipient
commands may be called followed by a Data command.

Implements rfc 821: MAIL <SP> FROM:<reverse-path> <CRLF>

SMTP CODE SUCCESS: 250
SMTP CODE SUCCESS: 552,451,452
SMTP CODE SUCCESS: 500,501,421
Function Parameters:
Function Info:
Access - public

Noop

bool Noop ( )

Sends the command NOOP to the SMTP server.
Implements from rfc 821: NOOP <CRLF>

SMTP CODE SUCCESS: 250
SMTP CODE ERROR  : 500, 421
Function Parameters:
Function Info:
Access - public

Quit

bool Quit ( [$close_on_error = true] )

Sends the quit command to the server and then closes the socket if there is no error or the $close_on_error argument is true.
Implements from rfc 821: QUIT <CRLF>

SMTP CODE SUCCESS: 221
SMTP CODE ERROR  : 500
Function Parameters:
Function Info:
Access - public

Recipient

bool Recipient ( $to )

Sends the command RCPT to the SMTP server with the TO: argument of $to. Returns true if the recipient was accepted false if it was rejected.
Implements from rfc 821: RCPT <SP> TO:<forward-path> <CRLF>

SMTP CODE SUCCESS: 250,251
SMTP CODE FAILURE: 550,551,552,553,450,451,452
SMTP CODE ERROR  : 500,501,503,421
Function Parameters:
Function Info:
Access - public

Reset

bool Reset ( )

Sends the RSET command to abort and transaction that is currently in progress.
Returns true if successful false
otherwise.

Implements rfc 821: RSET <CRLF>

SMTP CODE SUCCESS: 250
SMTP CODE ERROR  : 500,501,504,421
Function Parameters:
Function Info:
Access - public

Send

bool Send ( $from )

Starts a mail transaction from the email address specified in
$from. Returns true if successful or false otherwise. If True
the mail transaction is started and then one or more Recipient
commands may be called followed by a Data command. This command
will send the message to the users terminal if they are logged
in.

Implements rfc 821: SEND <SP> FROM:<reverse-path> <CRLF>

SMTP CODE SUCCESS: 250
SMTP CODE SUCCESS: 552,451,452
SMTP CODE SUCCESS: 500,501,502,421
Function Parameters:
Function Info:
Access - public

SendAndMail

bool SendAndMail ( $from )

Starts a mail transaction from the email address specified in
$from. Returns true if successful or false otherwise. If True
the mail transaction is started and then one or more Recipient
commands may be called followed by a Data command. This command
will send the message to the users terminal if they are logged
in and send them an email.

Implements rfc 821: SAML <SP> FROM:<reverse-path> <CRLF>

SMTP CODE SUCCESS: 250
SMTP CODE SUCCESS: 552,451,452
SMTP CODE SUCCESS: 500,501,502,421
Function Parameters:
Function Info:
Access - public

SendOrMail

bool SendOrMail ( $from )

Starts a mail transaction from the email address specified in
$from. Returns true if successful or false otherwise. If True
the mail transaction is started and then one or more Recipient
commands may be called followed by a Data command. This command
will send the message to the users terminal if they are logged
in or mail it to them if they are not.

Implements rfc 821: SOML <SP> FROM:<reverse-path> <CRLF>

SMTP CODE SUCCESS: 250
SMTP CODE SUCCESS: 552,451,452
SMTP CODE SUCCESS: 500,501,502,421
Function Parameters:
Function Info:
Access - public

Turn

bool Turn ( )

This is an optional command for SMTP that this class does not support.
This method is here to make the RFC821 Definition
complete for this class and __may__ be implimented in the future

Implements from rfc 821: TURN <CRLF>

SMTP CODE SUCCESS: 250
SMTP CODE FAILURE: 502
SMTP CODE ERROR  : 500, 503
Function Parameters:
Function Info:
Access - public

Verify

int Verify ( $name )

Verifies that the name is recognized by the server.
Returns false if the name could not be verified otherwise
the response from the server is returned.

Implements rfc 821: VRFY <SP> <string> <CRLF>

SMTP CODE SUCCESS: 250,251
SMTP CODE FAILURE: 550,551,553
SMTP CODE ERROR  : 500,501,502,421
Function Parameters:
Function Info:
Access - public