Send mail using SMTP protocol
'LOGIN'
'PLAIN'
array<string, mixed>Runtime config
boolWhether 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
arrayThe response of the last sent SMTP command.
Cake\Network\Socket|nullSocket to SMTP server
string|nullDetected 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
voidCake\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.
voidCake\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.
voidCake\Core\Exception\CakeException_connect(): void
Connect to SMTP Server
voidCake\Network\Exception\SocketException_disconnect(): void
Disconnect
voidCake\Network\Exception\SocketException_generateSocket(): void
Helper method to generate socket
voidCake\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
voidCake\Network\Exception\SocketException_sendRcpt(Cake\Mailer\Message $message): void
Send emails
Cake\Mailer\Message $message Message instance
voidCake\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|nullCake\Network\Exception\SocketException_socket(): Cake\Network\Socket
Get socket instance.
Cake\Network\SocketRuntimeExceptioncheckRecipient(Cake\Mailer\Message $message): void
Check that at least one destination header is set.
Cake\Mailer\Message $message Message instance.
voidCake\Core\Exception\CakeExceptionconfigShallow(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.
$thisconnect(): void
Connect to the SMTP server.
This method tries to connect only in case there is no open connection available already.
voidconnected(): bool
Check whether an open connection to the SMTP server is available.
booldisconnect(): void
Disconnect from the SMTP server.
This method tries to disconnect only in case there is an open connection available.
voidgetConfig(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.
mixedgetConfigOrFail(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.
mixedInvalidArgumentExceptiongetLastResponse(): 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...
] arraysend(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\SocketExceptionsetConfig(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.
$thisCake\Core\Exception\CakeExceptionRuntime config
array<string, mixed>Whether the config property has already been configured with defaults
boolContent of email to return
array<string, string>Default config for this class
array<string, mixed>The response of the last sent SMTP command.
arraySocket to SMTP server
Cake\Network\Socket|nullDetected 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