PHPMailer RFC821 SMTP email transport class.
Implements RFC 821 SMTP commands and provides some utility methods for sending mail to an SMTP server.
author | Chris Ryan |
---|---|
author | Marcus Bointon phpmailer@synchromedia.co.uk |
package | Default |
authenticate(string $username,string $password,string $authtype = null,\PHPMailer\PHPMailer\OAuthTokenProvider $OAuth = null): boolean
Must be run after hello().
see | \PHPMailer\PHPMailer\SMTP::hello() |
---|
string
The user name
string
The password
string
The auth type (CRAM-MD5, PLAIN, LOGIN, XOAUTH2)
\PHPMailer\PHPMailer\OAuthTokenProvider
An optional OAuthTokenProvider instance for XOAUTH2 authentication
boolean
True if successfully authenticated
client_send(string $data,string $command = ''): integer|boolean
string
The data to send
string
Optionally, the command this is part of, used only for controlling debug output
integer|boolean
The number of bytes sent to the server or false on error
close()
Don't use this function without first trying to use QUIT.
see | \PHPMailer\PHPMailer\SMTP::quit() |
---|---|
connect(string $host,integer $port = null,integer $timeout = 30,array $options = array()): boolean
string
SMTP server IP or host name
integer
The port number to connect to
integer
How long to wait for the connection to open
array
An array of options for stream_context_create()
boolean
connected(): boolean
boolean
True if connected
data(string $msg_data): boolean
Issues a data command and sends the msg_data to the server,
finalizing 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
string
Message data to send
boolean
edebug(string $str,integer $level)
see | \PHPMailer\PHPMailer\SMTP::Debugoutput\PHPMailer\PHPMailer\SMTP::do_debug |
---|---|
string
Debug string to output
integer
The debug level of this message; see DEBUG_* constants
errorHandler(integer $errno,string $errmsg,string $errfile = '',integer $errline)
integer
The error number returned by PHP
string
The error message returned by PHP
string
The file the error occurred in
integer
The line number the error occurred on
get_lines(): string
Either before eof or socket timeout occurs on the operation. With SMTP we can tell if we have more lines to read if the 4th character is '-' symbol. If it is a space then we don't need to read anything else.
string
getDebugLevel(): integer
integer
getDebugOutput(): string
string
getError(): array
array
getLastReply(): string
string
getLastTransactionID(): boolean|string|null
If no pattern was matched, it will return false.
see | \PHPMailer\PHPMailer\SMTP::recordLastTransactionID() |
---|---|
boolean|string|null
getServerExt(string $name): string|boolean|null
The method works in three ways, dependent on argument value and current state:
string
Name of SMTP extension or 'HELO'|'EHLO'
string|boolean|null
getServerExtList(): array|null
array|null
getSMTPConnection(string $host,integer $port = null,integer $timeout = 30,array $options = array()): false|resource
string
SMTP server IP or host name
integer
The port number to connect to
integer
How long to wait for the connection to open
array
An array of options for stream_context_create()
false|resource
getTimeout(): integer
integer
getVerp(): boolean
boolean
hello(string $host = ''): boolean
Used to identify the sending server to the receiving server.
This makes sure that client and server are in a known state.
Implements RFC 821: HELO
string
The host name or IP to connect to
boolean
hmac(string $data,string $key): string
Works like hash_hmac('md5', $data, $key) in case that function is not available.
string
The data to hash
string
The key to hash with
string
mail(string $from): boolean
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
string
Source address of this message
boolean
noop(): boolean
Used to keep keep-alives alive, doesn't actually do anything.
boolean
parseHelloFields(string $type)
In case of HELO, the only parameter that can be discovered is a server name.
string
HELO
or EHLO
quit(boolean $close_on_error = true): boolean
Closes the socket if there is no error or the $close_on_error argument is true.
Implements from RFC 821: QUIT
boolean
Should the connection close if an error occurs?
boolean
recipient(string $address,string $dsn = ''): boolean
Sets the TO argument to $toaddr.
Returns true if the recipient was accepted false if it was rejected.
Implements from RFC 821: RCPT
string
The address the message is being sent to
string
Comma separated list of DSN notifications. NEVER, SUCCESS, FAILURE or DELAY. If you specify NEVER all other notifications are ignored.
boolean
recordLastTransactionID(): boolean|string|null
Relies on the host providing the ID in response to a DATA command. If no reply has been received yet, it will return null. If no pattern was matched, it will return false.
boolean|string|null
reset(): boolean
Abort any transaction that is currently in progress.
Implements RFC 821: RSET
boolean
True on success
sendAndMail(string $from): boolean
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
string
The address the message is from
boolean
sendCommand(string $command,string $commandstring,integer|array $expect): boolean
string
The command name - not sent to the server
string
The actual command to send
integer|array
One or more expected integer success codes
boolean
True on success
sendHello(string $hello,string $host): boolean
Low-level implementation used by hello().
see | \PHPMailer\PHPMailer\SMTP::hello() |
---|
string
The HELO string
string
The hostname to say we are
boolean
setDebugLevel(integer $level)
integer
setDebugOutput(string|callable $method = 'echo')
string|callable
The name of the mechanism to use for debugging output, or a callable to handle it
setError(string $message,string $detail = '',string $smtp_code = '',string $smtp_code_ex = '')
string
The error message
string
Further detail on the error
string
An associated SMTP error code
string
Extended SMTP code
setTimeout(integer $timeout)
integer
The timeout duration in seconds
setVerp(boolean $enabled = false)
boolean
startTLS(): boolean
boolean
turn(): boolean
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 implemented in future.
Implements from RFC 821: TURN
boolean
verify(string $name): boolean
string
The name to verify
boolean
VERSION
var |
---|
LE
var |
---|
DEFAULT_PORT
var |
---|
MAX_LINE_LENGTH
see | |
---|---|
var |
MAX_REPLY_LENGTH
see | |
---|---|
var |
DEBUG_OFF
var |
---|
DEBUG_CLIENT
var |
---|
DEBUG_SERVER
var |
---|
DEBUG_CONNECTION
var |
---|
DEBUG_LOWLEVEL
var |
---|
do_debug :integer
Options:
0
) No debug output, default1
) Client commands2
) Client commands and server responses3
) As DEBUG_SERVER plus connection status4
) Low-level data output, all messages.var |
---|
integer
Debugoutput :string|callable|\Psr\Log\LoggerInterface
Options:
echo
Output plain-text as-is, appropriate for CLIhtml
Output escaped, line breaks converted to <br>
, appropriate for browser outputerror_log
Output to error log as configured in php.ini
Alternatively, you can provide a callable expecting two params: a message string and the debug level:$smtp->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";};
Alternatively, you can pass in an instance of a PSR-3 compatible logger, though only debug
level output is used:
$mail->Debugoutput = new myPsr3Logger;
var |
---|
string|callable|\Psr\Log\LoggerInterface
do_verp :boolean
see | Info on VERP |
---|---|
var |
boolean
Timeout :integer
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.
see | |
---|---|
var |
integer
Timelimit :integer
Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2.
var |
---|
integer
smtp_transaction_id_patterns :array<mixed,string>
The first capture group in each regex will be used as the ID. MS ESMTP returns the message ID, which may not be correct for internal tracking.
var |
---|
array<mixed,string>
last_smtp_transaction_id :string|boolean|null
var |
---|
string|boolean|null
smtp_conn :\PHPMailer\PHPMailer\?resource
var |
---|
\PHPMailer\PHPMailer\?resource
error :array
var |
---|
array
helo_rply :string|null
If null, no HELO string has yet been received.
var |
---|
string|null
server_caps :array|null
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.
var |
---|
array|null
last_reply :string
var |
---|
string