CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 4.2 Strawberry API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 4.2
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Auth
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
    • Datasource
    • Error
    • Event
    • Filesystem
    • Form
    • Http
    • I18n
    • Log
    • Mailer
      • Exception
      • Transport
    • Network
    • ORM
    • Routing
    • Shell
    • TestSuite
    • Utility
    • Validation
    • View

Class SmtpTransport

Send mail using SMTP protocol

Namespace: Cake\Mailer\Transport

Property Summary

  • $_config protected
    array

    Runtime config

  • $_configInitialized protected
    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

  • __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

  • _prepareFromAddress() protected

    Prepares the from email address.

  • _prepareFromCmd() protected

    Prepares the MAIL FROM SMTP command.

  • _prepareMessage() protected

    Prepares the message body.

  • _prepareRcptCmd() protected

    Prepares the RCPT TO SMTP 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 $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(): void

Unserialize handler.

Ensure that the socket property isn't reinitialized in a broken state.

Returns
void

_auth() ¶ protected

_auth(): void

Send authentication

Returns
void
Throws
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(string[] $responseLines): void

Parses and stores the response lines in 'code' => 'message' format.

Parameters
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
void
Throws
Cake\Core\Exception\CakeException
if 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(string|array $key, mixed $value, bool|string $merge = false): void

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.

Returns
void
Throws
Cake\Core\Exception\CakeException
if attempting to clobber existing config

_connect() ¶ protected

_connect(): void

Connect to SMTP Server

Returns
void
Throws
Cake\Network\Exception\SocketException

_disconnect() ¶ protected

_disconnect(): void

Disconnect

Returns
void
Throws
Cake\Network\Exception\SocketException

_generateSocket() ¶ protected

_generateSocket(): void

Helper method to generate socket

Returns
void
Throws
Cake\Network\Exception\SocketException

_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 message

Returns
void
Throws
Cake\Network\Exception\SocketException

_sendRcpt() ¶ protected

_sendRcpt(Cake\Mailer\Message $message): void

Send emails

Parameters
Cake\Mailer\Message $message

Message message

Returns
void
Throws
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|null
Throws
Cake\Network\Exception\SocketException

_socket() ¶ protected

_socket(): Cake\Network\Socket

Get socket instance.

Returns
Cake\Network\Socket
Throws
RuntimeException
If 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
void
Throws
Cake\Core\Exception\CakeException
If at least one of to, cc or bcc is not specified.

configShallow() ¶ public

configShallow(string|array $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
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(): void

Connect to the SMTP server.

This method tries to connect only in case there is no open connection available already.

Returns
void

connected() ¶ public

connected(): bool

Check whether an open connection to the SMTP server is available.

Returns
bool

disconnect() ¶ public

disconnect(): void

Disconnect from the SMTP server.

This method tries to disconnect only in case there is an open connection available.

Returns
void

getConfig() ¶ 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
mixed

getConfigOrFail() ¶ 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
mixed
Throws
InvalidArgumentException

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

send() ¶ public

send(Cake\Mailer\Message $message): array

Send mail

Parameters
Cake\Mailer\Message $message

Message instance

Returns
array
Throws
Cake\Network\Exception\SocketException

setConfig() ¶ public

setConfig(string|array $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
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\CakeException
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
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs