Send mail using SMTP protocol
'LOGIN'
'PLAIN'
array<string, mixed>
Runtime config
bool
Whether the config property has already been configured with defaults
array<string, string>
Content of email to return
array<string, mixed>
Default config for this class
array
The response of the last sent SMTP command.
Cake\Network\Socket|null
Socket to SMTP server
string|null
Detected authentication type.
Constructor
Destructor
Unserialize handler.
Send authentication
Authenticate using AUTH LOGIN mechanism.
Authenticate using AUTH PLAIN mechanism.
Parses and stores the response lines in 'code' => 'message'
format.
Deletes a single config key.
Reads a config key.
Writes a config key.
Connect to SMTP Server
Disconnect
Helper method to generate socket
Parses the last response line and extract the preferred authentication type.
Prepares the from
email address.
Prepares the MAIL FROM
SMTP command.
Prepares the message body.
Prepares the RCPT TO
SMTP command.
Prepares the recipient email addresses.
Send Data
Send emails
Protected method for sending data to SMTP connection
Get socket instance.
Check that at least one destination header is set.
Merge provided config with existing config. Unlike config()
which does a recursive merge for nested keys, this method does a simple merge.
Connect to the SMTP server.
Check whether an open connection to the SMTP server is available.
Disconnect from the SMTP server.
Returns the config.
Returns the config for this specific key.
Returns the response of the last sent SMTP command.
Send mail
Sets the config.
__construct(array<string, mixed> $config = [])
Constructor
array<string, mixed>
$config optional Configuration options.
__destruct()
Destructor
Tries to disconnect to ensure that the connection is being terminated properly before the socket gets closed.
__wakeup(): void
Unserialize handler.
Ensure that the socket property isn't reinitialized in a broken state.
void
_auth(): void
Send authentication
void
Cake\Network\Exception\SocketException
_authLogin(string $username, string $password): void
Authenticate using AUTH LOGIN mechanism.
string
$username Username.
string
$password Password.
void
_authPlain(string $username, string $password): string|null
Authenticate using AUTH PLAIN mechanism.
string
$username Username.
string
$password Password.
string|null
_bufferResponseLines(array<string> $responseLines): void
Parses and stores the response lines in 'code' => 'message'
format.
array<string>
$responseLines Response lines to parse.
void
_configDelete(string $key): void
Deletes a single config key.
string
$key Key to delete.
void
Cake\Core\Exception\CakeException
_configRead(string|null $key): mixed
Reads a config key.
string|null
$key Key to read.
mixed
_configWrite(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void
Writes a config key.
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.
void
Cake\Core\Exception\CakeException
_connect(): void
Connect to SMTP Server
void
Cake\Network\Exception\SocketException
_disconnect(): void
Disconnect
void
Cake\Network\Exception\SocketException
_generateSocket(): void
Helper method to generate socket
void
Cake\Network\Exception\SocketException
_parseAuthType(): void
Parses the last response line and extract the preferred authentication type.
void
_prepareFromAddress(Cake\Mailer\Message $message): array
Prepares the from
email address.
Cake\Mailer\Message
$message Message instance
array
_prepareFromCmd(string $message): string
Prepares the MAIL FROM
SMTP command.
string
$message The email address to send with the command.
string
_prepareMessage(Cake\Mailer\Message $message): string
Prepares the message body.
Cake\Mailer\Message
$message Message instance
string
_prepareRcptCmd(string $message): string
Prepares the RCPT TO
SMTP command.
string
$message The email address to send with the command.
string
_prepareRecipientAddresses(Cake\Mailer\Message $message): array
Prepares the recipient email addresses.
Cake\Mailer\Message
$message Message instance
array
_sendData(Cake\Mailer\Message $message): void
Send Data
Cake\Mailer\Message
$message Message instance
void
Cake\Network\Exception\SocketException
_sendRcpt(Cake\Mailer\Message $message): void
Send emails
Cake\Mailer\Message
$message Message instance
void
Cake\Network\Exception\SocketException
_smtpSend(string|null $data, string|false $checkCode = '250'): string|null
Protected method for sending data to SMTP connection
string|null
$data Data to be sent to SMTP server
string|false
$checkCode optional Code to check for in server response, false to skip
string|null
Cake\Network\Exception\SocketException
_socket(): Cake\Network\Socket
Get socket instance.
Cake\Network\Socket
RuntimeException
checkRecipient(Cake\Mailer\Message $message): void
Check that at least one destination header is set.
Cake\Mailer\Message
$message Message instance.
void
Cake\Core\Exception\CakeException
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']);
array<string, mixed>|string
$key The key to set, or a complete array of configs.
mixed|null
$value optional The value to set.
$this
connect(): void
Connect to the SMTP server.
This method tries to connect only in case there is no open connection available already.
void
connected(): bool
Check whether an open connection to the SMTP server is available.
bool
disconnect(): void
Disconnect from the SMTP server.
This method tries to disconnect only in case there is an open connection available.
void
getConfig(string|null $key = null, mixed $default = null): mixed
Returns the config.
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');
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.
mixed
getConfigOrFail(string $key): mixed
Returns the config for this specific key.
The config value for this key must exist, it can never be null.
string
$key The key to get.
mixed
InvalidArgumentException
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... ]
array
send(Cake\Mailer\Message $message): array{headers: string, message: string}
Send mail
Cake\Mailer\Message
$message Message instance
array{headers: string, message: string}
Cake\Network\Exception\SocketException
setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this
Sets the config.
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']);
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.
$this
Cake\Core\Exception\CakeException
Runtime config
array<string, mixed>
Whether the config property has already been configured with defaults
bool
Content of email to return
array<string, string>
Default config for this class
array<string, mixed>
The response of the last sent SMTP command.
array
Socket to SMTP server
Cake\Network\Socket|null
Detected authentication 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