Class SmtpTransport
Send mail using SMTP protocol
Properties summary
- $_config protected
arrayRuntime config
- $_configInitialized protected
boolWhether the config property has already been configured with defaults
- $_content protected
arrayContent of email to return
- $_defaultConfig protected
arrayDefault config for this class
- $_lastResponse protected
arrayThe response of the last sent SMTP command.
- $_socket protected
\Cake\Network\Socket|nullSocket to SMTP server
Method Summary
- _bufferResponseLines() protected
Parses and stores the response lines in
'code' => 'message'format. - configShallow() public
Merge provided config with existing config. Unlike
config()which does a recursive merge for nested keys, this method does a simple merge.
Method Detail
__construct() public
__construct(array $config)
Constructor
Parameters
-
array$config optional Configuration options.
__destruct() public
__destruct()
Destructor
Tries to disconnect to ensure that the connection is being terminated properly before the socket gets closed.
__wakeup() public
__wakeup()
Unserialize handler.
Ensure that the socket property isn't reinitialized in a broken state.
_auth() protected
_auth()
Send authentication
Throws
Cake\Network\Exception\SocketException_authLogin() protected
_authLogin(string $username, string $password)
Authenticate using AUTH LOGIN mechanism.
Parameters
-
string$username Username.
-
string$password Password.
_authPlain() protected
_authPlain(string $username, string $password)
Authenticate using AUTH PLAIN mechanism.
Parameters
-
string$username Username.
-
string$password Password.
Returns
string|nullResponse code for the command.
_bufferResponseLines() protected
_bufferResponseLines(array $responseLines)
Parses and stores the response lines in 'code' => 'message' format.
Parameters
-
string[]$responseLines Response lines to parse.
_configDelete() protected
_configDelete(string $key)
Deletes a single config key.
Parameters
-
string$key Key to delete.
Throws
Cake\Core\Exception\Exceptionif attempting to clobber existing config
_configRead() protected
_configRead(?string $key)
Reads a config key.
Parameters
-
string|null$key Key to read.
Returns
mixed_configWrite() protected
_configWrite(mixed $key, mixed $value, mixed $merge)
Writes a config key.
Parameters
-
string|array$key Key to write to.
-
mixed$value Value to write.
-
bool|string$merge optional True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.
Throws
Cake\Core\Exception\Exceptionif attempting to clobber existing config
_connect() protected
_connect()
Connect to SMTP Server
Throws
Cake\Network\Exception\SocketException_disconnect() protected
_disconnect()
Disconnect
Throws
Cake\Network\Exception\SocketException_generateSocket() protected
_generateSocket()
Helper method to generate socket
Throws
Cake\Network\Exception\SocketException_prepareFromAddress() protected
_prepareFromAddress(\Cake\Mailer\Message $message)
Prepares the from email address.
Parameters
-
\Cake\Mailer\Message$message Message instance
Returns
array_prepareFromCmd() protected
_prepareFromCmd(string $message)
Prepares the MAIL FROM SMTP command.
Parameters
-
string$message The email address to send with the command.
Returns
string_prepareMessage() protected
_prepareMessage(\Cake\Mailer\Message $message)
Prepares the message body.
Parameters
-
\Cake\Mailer\Message$message Message instance
Returns
string_prepareRcptCmd() protected
_prepareRcptCmd(string $message)
Prepares the RCPT TO SMTP command.
Parameters
-
string$message The email address to send with the command.
Returns
string_prepareRecipientAddresses() protected
_prepareRecipientAddresses(\Cake\Mailer\Message $message)
Prepares the recipient email addresses.
Parameters
-
\Cake\Mailer\Message$message Message instance
Returns
array_sendData() protected
_sendData(\Cake\Mailer\Message $message)
Send Data
Parameters
-
\Cake\Mailer\Message$message Message message
Throws
Cake\Network\Exception\SocketException_sendRcpt() protected
_sendRcpt(\Cake\Mailer\Message $message)
Send emails
Parameters
-
\Cake\Mailer\Message$message Message message
Throws
Cake\Network\Exception\SocketException_smtpSend() protected
_smtpSend(?string $data, mixed $checkCode)
Protected method for sending data to SMTP connection
Parameters
-
string|null$data Data to be sent to SMTP server
-
string|false$checkCode optional Code to check for in server response, false to skip
Returns
string|nullThe matched code, or null if nothing matched
Throws
Cake\Network\Exception\SocketException_socket() protected
_socket()
Get socket instance.
Returns
\Cake\Network\SocketThrows
RuntimeExceptionIf socket is not set.
checkRecipient() protected
checkRecipient(\Cake\Mailer\Message $message)
Check that at least one destination header is set.
Parameters
-
\Cake\Mailer\Message$message Message instance.
Throws
Cake\Core\Exception\ExceptionIf at least one of to, cc or bcc is not specified.
configShallow() public
configShallow(mixed $key, mixed $value)
Merge provided config with existing config. Unlike config() which does a recursive merge for nested keys, this method does a simple merge.
Setting a specific value:
$this->configShallow('key', $value); Setting a nested value:
$this->configShallow('some.nested.key', $value); Updating multiple config settings at the same time:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Parameters
-
string|array$key The key to set, or a complete array of configs.
-
mixed|null$value optional The value to set.
Returns
$thisconnect() public
connect()
Connect to the SMTP server.
This method tries to connect only in case there is no open connection available already.
connected() public
connected()
Check whether an open connection to the SMTP server is available.
Returns
booldisconnect() public
disconnect()
Disconnect from the SMTP server.
This method tries to disconnect only in case there is an open connection available.
getConfig() public
getConfig(?string $key, mixed $default)
Returns the config.
Usage
Reading the whole config:
$this->getConfig();
Reading a specific value:
$this->getConfig('key'); Reading a nested value:
$this->getConfig('some.nested.key'); Reading with default value:
$this->getConfig('some-key', 'default-value'); Parameters
-
string|null$key optional The key to get or null for the whole config.
-
mixed$default optional The return value when the key does not exist.
Returns
mixedConfiguration data at the named key or null if the key does not exist.
getConfigOrFail() public
getConfigOrFail(string $key)
Returns the config for this specific key.
The config value for this key must exist, it can never be null.
Parameters
-
string$key The key to get.
Returns
mixedConfiguration data at the named key
Throws
InvalidArgumentExceptiongetLastResponse() public
getLastResponse()
Returns the response of the last sent SMTP command.
A response consists of one or more lines containing a response code and an optional response message text:
[
[
'code' => '250',
'message' => 'mail.example.com'
],
[
'code' => '250',
'message' => 'PIPELINING'
],
[
'code' => '250',
'message' => '8BITMIME'
],
// etc...
] Returns
arraysend() public
send(\Cake\Mailer\Message $message)
Send mail
Parameters
-
\Cake\Mailer\Message$message Message instance
Returns
arrayThrows
Cake\Network\Exception\SocketExceptionsetConfig() public
setConfig(mixed $key, mixed $value, mixed $merge)
Sets the config.
Usage
Setting a specific value:
$this->setConfig('key', $value); Setting a nested value:
$this->setConfig('some.nested.key', $value); Updating multiple config settings at the same time:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Parameters
-
string|array$key The key to set, or a complete array of configs.
-
mixed|null$value optional The value to set.
-
bool$merge optional Whether to recursively merge or overwrite existing config, defaults to true.
Returns
$thisThrows
Cake\Core\Exception\ExceptionWhen trying to set a key that is invalid.
Property Detail
$_config protected
Runtime config
Type
array$_configInitialized protected
Whether the config property has already been configured with defaults
Type
bool$_content protected
Content of email to return
Type
array$_defaultConfig protected
Default config for this class
Type
array$_lastResponse protected
The response of the last sent SMTP command.
Type
array$_socket protected
Socket to SMTP server
Type
\Cake\Network\Socket|null
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.0/class-Cake.Mailer.Transport.SmtpTransport.html