\SMTP
PHP RFC821 SMTP client
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.
- Author: Chris Ryan
Synopsis
class SMTP
{
- // members
- public $SMTP_PORT;
- public $CRLF;
- public $do_debug;
- public $Debugoutput;
- public $do_verp;
- public $Timeout;
- public $Timelimit;
- public $Version;
- protected $smtp_conn;
- protected $error;
- protected $helo_rply;
- // methods
- protected void edebug()
- public SMTP __construct()
- public bool Connect()
- public bool StartTLS()
- public bool Authenticate()
- protected string hmac()
- public bool Connected()
- public void Close()
- public bool Data()
- public bool Hello()
- protected bool SendHello()
- public bool Mail()
- public bool Quit()
- public bool Recipient()
- public bool Reset()
- public bool SendAndMail()
- public bool Turn()
- public Integer client_send()
- public array getError()
- protected string get_lines()
Members
protected
- $error — string
- $helo_rply — string
- $smtp_conn — resource
public
-
$CRLF
SMTP reply line ending (don't change) @var string - $Debugoutput
—
string
Sets the function/method to use for debugging output. -
$SMTP_PORT
SMTP server port @var int - $Timelimit
—
int
Sets the SMTP timelimit value for reads, in seconds - $Timeout
—
int
Sets the SMTP timeout value for reads, in seconds - $Version
—
string
Sets the SMTP PHPMailer Version number -
$do_debug
Debug output level; 0 for no output @var int -
$do_verp
Sets VERP use on/off (default is off) @var bool
Methods
protected
- SendHello() — Sends a HELO/EHLO command.
- edebug() — Outputs debugging info via user-defined method
- get_lines() — Read in as many lines as possible either before eof or socket timeout occurs on the operation.
- hmac() — Works like hash_hmac('md5', $data, $key) in case that function is not available
public
- __construct() — Initialize the class so that the data is in a known state.
- Authenticate() — Performs SMTP authentication. Must be run after running the Hello() method. Returns true if successfully authenticated.
- Close() — Closes the socket and cleans up the state of the class.
- Connect() — Connect to an SMTP server
- Connected() — Returns true if connected to a server otherwise false
- 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 separated by and additional <CRLF>.
- Hello() — Sends the HELO command to the smtp server.
- Mail() — 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.
- Quit() — 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.
- Recipient() — Sends the command RCPT to the SMTP server with the TO: argument of $to.
- Reset() — Sends the RSET command to abort and transaction that is currently in progress. Returns true if successful false otherwise.
- SendAndMail() — 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.
- StartTLS() — Initiate a TLS communication with the server.
- 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
- client_send() — Sends data to the server
- getError() — Get the current error