Class SMTP
PHPMailer RFC821 SMTP email transport class. Implements RFC 821 SMTP commands and provides some utility methods for sending mail to an SMTP server.
Copyright: 2014 Marcus Bointon
Copyright: 2010 - 2012 Jim Jagielski
Copyright: 2004 - 2009 Andy Prevost
License: GNU Lesser General Public License
Author: Chris Ryan
Author: Marcus Bointon phpmailer@synchromedia.co.uk
Used by:
PHPMailer::smtpSend()
Used by:
PHPMailer::smtpConnect()
Used by:
PHPMailerOAuth::smtpConnect()
Located at lass/mail/phpmailer/class.smtp.php
protected
|
|
public
boolean
|
|
public
boolean
|
|
public
boolean
|
#
authenticate( string $username, string $password, string $authtype = null, string $realm = '', string $workstation = '', null|OAuth $OAuth = null )
Perform SMTP authentication. Must be run after hello(). |
protected
string
|
|
public
boolean
|
|
public
|
|
public
boolean
|
#
data( string $msg_data )
Send an SMTP DATA command.
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 |
public
boolean
|
|
protected
boolean
|
|
protected
|
#
parseHelloFields( string $type )
Parse a reply to HELO/EHLO command to discover server extensions. In case of HELO, the only parameter that can be discovered is a server name. |
public
boolean
|
#
mail( string $from )
Send an SMTP MAIL command.
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 |
public
boolean
|
|
public
boolean
|
|
public
boolean
|
|
protected
boolean
|
#
sendCommand( string $command, string $commandstring, integer|array $expect )
Send a command to an SMTP server and check its return code. |
public
boolean
|
#
sendAndMail( string $from )
Send an SMTP SAML command.
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 |
public
boolean
|
|
public
boolean
|
|
public
boolean
|
|
public
integer|boolean
|
|
public
array
|
|
public
array|null
|
|
public
mixed
|
#
getServerExt( string $name )
A multipurpose method The method works in three ways, dependent on argument value and current state 1. HELO/EHLO was not sent - returns null and set up $this->error 2. HELO was sent $name = 'HELO': returns server name $name = 'EHLO': returns boolean false $name = any string: returns null and set up $this->error 3. EHLO was sent $name = 'HELO'|'EHLO': returns server name $name = any string: if extension $name exists, returns boolean True or its options. Otherwise returns boolean False In other words, one can use this method to detect 3 conditions: - null returned: handshake was not or we don't know about ext (refer to $this->error) - false returned: the requested feature exactly not exists - positive value returned: the requested feature exists |
public
string
|
|
protected
string
|
|
public
|
|
public
boolean
|
|
protected
|
|
public
|
|
public
string
|
|
public
|
|
public
integer
|
|
public
|
|
public
integer
|
|
protected
|
|
public
boolean|null|string
|
#
getLastTransactionID( )
Will return the ID of the last smtp transaction based on a list of patterns provided in SMTP::$smtp_transaction_id_patterns. If no reply has been received yet, it will return null. If no pattern has been matched, it will return false. |
string |
VERSION
The PHPMailer SMTP version number. |
#
'5.2.21'
|
string |
CRLF
SMTP line break constant. |
#
"\r\n"
|
integer |
DEFAULT_SMTP_PORT
The SMTP port to use if one is not specified. |
#
25
|
integer |
MAX_LINE_LENGTH
The maximum line length allowed by RFC 2822 section 2.1.1 |
#
998
|
integer |
DEBUG_OFF
Debug level for no output |
#
0
|
integer |
DEBUG_CLIENT
Debug level to show client -> server messages |
#
1
|
integer |
DEBUG_SERVER
Debug level to show client -> server and server -> client messages |
#
2
|
integer |
DEBUG_CONNECTION
Debug level to show connection status, client -> server and server -> client messages |
#
3
|
integer |
DEBUG_LOWLEVEL
Debug level to show all messages |
#
4
|
public
string
|
$Version
The PHPMailer SMTP Version number. |
#
'5.2.21'
|
public
integer
|
$SMTP_PORT
SMTP server port number. |
#
25
|
public
string
|
$CRLF
SMTP reply line ending. |
#
"\r\n"
|
public
integer
|
$do_debug
Debug output level.
Options:
* self::DEBUG_OFF ( |
|
public
string|callable
|
$Debugoutput
How to handle debug output.
Options:
* |
#
'echo'
|
public
boolean
|
$do_verp
Whether to use VERP. |
#
false
|
public
integer
|
$Timeout
The timeout value for connection, in seconds. Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2 This needs to be quite high to function correctly with hosts using greetdelay as an anti-spam measure. |
#
300
|
public
integer
|
$Timelimit
How long to wait for commands to complete, in seconds. Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2 |
#
300
|
protected
array
|
$smtp_transaction_id_patterns
patterns to extract smtp transaction id from smtp reply Only first capture group will be use, use non-capturing group to deal with it Extend this class to override this property to fulfil your needs. |
#
array(
'exim' => '/[0-9]{3} OK id=(.*)/',
'sendmail' => '/[0-9]{3} 2.0.0 (.*) Message/',
'postfix' => '/[0-9]{3} 2.0.0 Ok: queued as (.*)/'
)
|
protected
resource
|
$smtp_conn
The socket for the server connection. |
|
protected
array
|
$error
Error information, if any, for the last SMTP command. |
#
array(
'error' => '',
'detail' => '',
'smtp_code' => '',
'smtp_code_ex' => ''
)
|
protected
string|null
|
$helo_rply
The reply the server sent to us for HELO. If null, no HELO string has yet been received. |
#
null
|
protected
array|null
|
$server_caps
The set of SMTP extensions sent in reply to EHLO command. Indexes of the array are extension names. Value at index 'HELO' or 'EHLO' (according to command that was sent) represents the server name. In case of HELO it is the only element of the array. Other values can be boolean TRUE or an array containing extension options. If null, no HELO/EHLO string has yet been received. |
#
null
|
protected
string
|
$last_reply
The most recent reply received from the server. |
#
''
|