Class SmtpTransport

Send mail using SMTP protocol

Properties summary

  • $_config protected
    array

    Runtime config

  • bool

    Whether the config property has already been configured with defaults

  • $_content protected
    array

    Content of email to return

  • $_defaultConfig protected
    array

    Default config for this class

  • $_lastResponse protected
    array

    The response of the last sent SMTP command.

  • $_socket protected
    \Cake\Network\Socket|null

    Socket to SMTP server

Method Summary

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|null

Response 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\Exception
if 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\Exception
if 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|null

The matched code, or null if nothing matched

Throws

Cake\Network\Exception\SocketException

_socket() protected

_socket()

Get socket instance.

Returns

\Cake\Network\Socket

Throws

RuntimeException
If 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\Exception
If 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

$this

connect() 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

bool

disconnect() 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

mixed

Configuration 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

mixed

Configuration data at the named key

Throws

InvalidArgumentException

getLastResponse() 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

array

send() public

send(\Cake\Mailer\Message $message)

Send mail

Parameters

\Cake\Mailer\Message $message

Message instance

Returns

array

Throws

Cake\Network\Exception\SocketException

setConfig() 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

$this

Throws

Cake\Core\Exception\Exception
When 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.1/class-Cake.Mailer.Transport.SmtpTransport.html