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 3.10 Red Velvet API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 3.10
      • 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

  • _headersToString() protected

    Help to convert headers in string

  • _prepareFromAddress() protected

    Prepares the from email address.

  • _prepareFromCmd() protected

    Prepares the MAIL FROM SMTP command.

  • _prepareMessage() protected

    Prepares the message body.

  • _prepareMessageHeaders() protected

    Prepares the message headers.

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

  • config() public deprecated

    Gets/Sets the config.

  • 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

Response code for the command.

_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\Exception
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\Exception
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

_headersToString() ¶ protected

_headersToString(array $headers, string $eol = "\r\n"): string

Help to convert headers in string

Parameters
array $headers

Headers in format key => value

string $eol optional

End of line string.

Returns
string

_prepareFromAddress() ¶ protected

_prepareFromAddress(Cake\Mailer\Email $email): array

Prepares the from email address.

Parameters
Cake\Mailer\Email $email

Email instance

Returns
array

_prepareFromCmd() ¶ protected

_prepareFromCmd(string $email): string

Prepares the MAIL FROM SMTP command.

Parameters
string $email

The email address to send with the command.

Returns
string

_prepareMessage() ¶ protected

_prepareMessage(Cake\Mailer\Email $email): string

Prepares the message body.

Parameters
Cake\Mailer\Email $email

Email instance

Returns
string

_prepareMessageHeaders() ¶ protected

_prepareMessageHeaders(Cake\Mailer\Email $email): array

Prepares the message headers.

Parameters
Cake\Mailer\Email $email

Email instance

Returns
array

_prepareRcptCmd() ¶ protected

_prepareRcptCmd(string $email): string

Prepares the RCPT TO SMTP command.

Parameters
string $email

The email address to send with the command.

Returns
string

_prepareRecipientAddresses() ¶ protected

_prepareRecipientAddresses(Cake\Mailer\Email $email): array

Prepares the recipient email addresses.

Parameters
Cake\Mailer\Email $email

Email instance

Returns
array

_sendData() ¶ protected

_sendData(Cake\Mailer\Email $email): void

Send Data

Parameters
Cake\Mailer\Email $email

Email instance

Returns
void
Throws
Cake\Network\Exception\SocketException

_sendRcpt() ¶ protected

_sendRcpt(Cake\Mailer\Email $email): void

Send emails

Parameters
Cake\Mailer\Email $email

Cake Email

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

The matched code, or null if nothing matched

Throws
Cake\Network\Exception\SocketException

config() ¶ public

config(string|array|null $key = null, mixed|null $value = null, bool $merge = true): mixed

Gets/Sets the config.

Usage

Reading the whole config:

$this->config();

Reading a specific value:

$this->config('key');

Reading a nested value:

$this->config('some.nested.key');

Setting a specific value:

$this->config('key', $value);

Setting a nested value:

$this->config('some.nested.key', $value);

Updating multiple config settings at the same time:

$this->config(['one' => 'value', 'another' => 'value']);
Parameters
string|array|null $key optional

The key to get/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
mixed

Config value being read, or the object itself on write operations.

Throws
Cake\Core\Exception\Exception
When trying to set a key that is invalid.

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|null $default = null): mixed|null

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|null $default optional

The return value when the key does not exist.

Returns
mixed|null

Configuration data at the named key or null if the key does not exist.

getConfigOrFail() ¶ public

getConfigOrFail(string|null $key): mixed

Returns the config for this specific key.

The config value for this key must exist, it can never be null.

Parameters
string|null $key

The key to get.

Returns
mixed

Configuration data at the named key

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\Email $email): array

Send mail

Parameters
Cake\Mailer\Email $email

Email 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\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
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