On this page
Class SmtpTransport
Send mail using SMTP protocol
Constants
-
AUTH_LOGIN
'LOGIN' -
AUTH_PLAIN
'PLAIN'
Property Summary
-
$_config protected
array<string, mixed>Runtime config
-
$_configInitialized protected
boolWhether the config property has already been configured with defaults
-
$_content protected
array<string, string>Content of email to return
-
$_defaultConfig protected
array<string, mixed>Default config for this class
-
$_lastResponse protected
arrayThe response of the last sent SMTP command.
-
$_socket protected
Cake\Network\Socket|nullSocket to SMTP server
-
$authType protected
string|nullDetected authentication type.
Method Summary
__construct() public
Constructor
__destruct() public
Destructor
__wakeup() public
Unserialize handler.
_auth() protected
Send authentication
_authLogin() protected
Authenticate using AUTH LOGIN mechanism.
_authPlain() protected
Authenticate using AUTH PLAIN mechanism.
_bufferResponseLines() protected
Parses and stores the response lines in
'code' => 'message'format._configDelete() protected
Deletes a single config key.
_configRead() protected
Reads a config key.
_configWrite() protected
Writes a config key.
_connect() protected
Connect to SMTP Server
_disconnect() protected
Disconnect
_generateSocket() protected
Helper method to generate socket
_parseAuthType() protected
Parses the last response line and extract the preferred authentication type.
_prepareFromAddress() protected
Prepares the
fromemail address._prepareFromCmd() protected
Prepares the
MAIL FROMSMTP command._prepareMessage() protected
Prepares the message body.
_prepareRcptCmd() protected
Prepares the
RCPT TOSMTP command._prepareRecipientAddresses() protected
Prepares the recipient email addresses.
_sendData() protected
Send Data
_sendRcpt() protected
Send emails
_smtpSend() protected
Protected method for sending data to SMTP connection
_socket() protected
Get socket instance.
checkRecipient() protected
Check that at least one destination header is set.
configShallow() public
Merge provided config with existing config. Unlike
config()which does a recursive merge for nested keys, this method does a simple merge.connect() public
Connect to the SMTP server.
connected() public
Check whether an open connection to the SMTP server is available.
disconnect() public
Disconnect from the SMTP server.
getConfig() public
Returns the config.
getConfigOrFail() public
Returns the config for this specific key.
getLastResponse() public
Returns the response of the last sent SMTP command.
send() public
Send mail
setConfig() public
Sets the config.
Method Detail
__construct() public
__construct(array<string, mixed> $config = [])
Constructor
Parameters
array<string, mixed>$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(): void
Unserialize handler.
Ensure that the socket property isn't reinitialized in a broken state.
Returns
void_auth() protected
_auth(): void
Send authentication
Returns
voidThrows
Cake\Network\Exception\SocketException_authLogin() protected
_authLogin(string $username, string $password): void
Authenticate using AUTH LOGIN mechanism.
Parameters
string$username-
Username.
string$password-
Password.
Returns
void_authPlain() protected
_authPlain(string $username, string $password): string|null
Authenticate using AUTH PLAIN mechanism.
Parameters
string$username-
Username.
string$password-
Password.
Returns
string|null_bufferResponseLines() protected
_bufferResponseLines(array<string> $responseLines): void
Parses and stores the response lines in 'code' => 'message' format.
Parameters
array<string>$responseLines-
Response lines to parse.
Returns
void_configDelete() protected
_configDelete(string $key): void
Deletes a single config key.
Parameters
string$key-
Key to delete.
Returns
voidThrows
Cake\Core\Exception\CakeExceptionif attempting to clobber existing config
_configRead() protected
_configRead(string|null $key): mixed
Reads a config key.
Parameters
string|null$key-
Key to read.
Returns
mixed_configWrite() protected
_configWrite(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void
Writes a config key.
Parameters
array<string, mixed>|string$key-
Key to write to.
mixed$value-
Value to write.
string|bool$merge optional-
True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.
Returns
voidThrows
Cake\Core\Exception\CakeExceptionif attempting to clobber existing config
_connect() protected
_connect(): void
Connect to SMTP Server
Returns
voidThrows
Cake\Network\Exception\SocketException_disconnect() protected
_disconnect(): void
Disconnect
Returns
voidThrows
Cake\Network\Exception\SocketException_generateSocket() protected
_generateSocket(): void
Helper method to generate socket
Returns
voidThrows
Cake\Network\Exception\SocketException_parseAuthType() protected
_parseAuthType(): void
Parses the last response line and extract the preferred authentication type.
Returns
void_prepareFromAddress() protected
_prepareFromAddress(Cake\Mailer\Message $message): array
Prepares the from email address.
Parameters
Cake\Mailer\Message$message-
Message instance
Returns
array_prepareFromCmd() protected
_prepareFromCmd(string $message): string
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): string
Prepares the message body.
Parameters
Cake\Mailer\Message$message-
Message instance
Returns
string_prepareRcptCmd() protected
_prepareRcptCmd(string $message): string
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): array
Prepares the recipient email addresses.
Parameters
Cake\Mailer\Message$message-
Message instance
Returns
array_sendData() protected
_sendData(Cake\Mailer\Message $message): void
Send Data
Parameters
Cake\Mailer\Message$message-
Message instance
Returns
voidThrows
Cake\Network\Exception\SocketException_sendRcpt() protected
_sendRcpt(Cake\Mailer\Message $message): void
Send emails
Parameters
Cake\Mailer\Message$message-
Message instance
Returns
voidThrows
Cake\Network\Exception\SocketException_smtpSend() protected
_smtpSend(string|null $data, string|false $checkCode = '250'): string|null
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|nullThrows
Cake\Network\Exception\SocketException_socket() protected
_socket(): Cake\Network\Socket
Get socket instance.
Returns
Cake\Network\SocketThrows
RuntimeExceptionIf socket is not set.
checkRecipient() protected
checkRecipient(Cake\Mailer\Message $message): void
Check that at least one destination header is set.
Parameters
Cake\Mailer\Message$message-
Message instance.
Returns
voidThrows
Cake\Core\Exception\CakeExceptionIf at least one of to, cc or bcc is not specified.
configShallow() public
configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this
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
array<string, mixed>|string$key-
The key to set, or a complete array of configs.
mixed|null$value optional-
The value to set.
Returns
$thisconnect() public
connect(): void
Connect to the SMTP server.
This method tries to connect only in case there is no open connection available already.
Returns
voidconnected() public
connected(): bool
Check whether an open connection to the SMTP server is available.
Returns
booldisconnect() public
disconnect(): void
Disconnect from the SMTP server.
This method tries to disconnect only in case there is an open connection available.
Returns
voidgetConfig() public
getConfig(string|null $key = null, mixed $default = null): mixed
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
mixedgetConfigOrFail() public
getConfigOrFail(string $key): mixed
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
mixedThrows
InvalidArgumentExceptiongetLastResponse() public
getLastResponse(): array
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): array{headers: string, message: string}
Send mail
Parameters
Cake\Mailer\Message$message-
Message instance
Returns
array{headers: string, message: string}Throws
Cake\Network\Exception\SocketExceptionsetConfig() public
setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this
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
array<string, mixed>|string$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\CakeExceptionWhen trying to set a key that is invalid.
Property Detail
$_config protected
Runtime config
Type
array<string, mixed>$_configInitialized protected
Whether the config property has already been configured with defaults
Type
bool$_content protected
Content of email to return
Type
array<string, string>$_defaultConfig protected
Default config for this class
Type
array<string, mixed>$_lastResponse protected
The response of the last sent SMTP command.
Type
array$_socket protected
Socket to SMTP server
Type
Cake\Network\Socket|null$authType protected
Detected authentication type.
Type
string|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.4/class-Cake.Mailer.Transport.SmtpTransport.html