W3cubDocs

/CakePHP 4.4

Class
Email

CakePHP Email class.

This class is used for sending Internet Message Format based on the standard outlined in https://www.rfc-editor.org/rfc/rfc2822.txt

Configuration

Configuration for Email is managed by Email::config() and Email::configTransport(). Email::config() can be used to add or read a configuration profile for Email instances. Once made configuration profiles can be used to re-use across various email messages your application sends.

Namespace: Cake\Mailer
Deprecated: 4.0.0 This class will be removed in CakePHP 5.0, use {@link \Cake\Mailer\Mailer} instead.

Constants

  • string
    EMAIL_PATTERN
    '/^((?:[\\p{L}0-9.!#$%&\'*+\\/=?^_`{|}~-]+)*@[\\p{L}0-9-._]+)$/ui'

    Holds the regex pattern for email validation

  • string
    MESSAGE_BOTH
    'both'

    Type of message - BOTH

  • string
    MESSAGE_HTML
    'html'

    Type of message - HTML

  • string
    MESSAGE_TEXT
    'text'

    Type of message - TEXT

Property Summary

  • $_profile protected
    array<string, mixed>

    A copy of the configuration profile for this instance. This copy can be modified with Email::profile().

  • $_transport protected
    Cake\Mailer\AbstractTransport|null

    The transport instance to use for sending mail.

  • $message protected
    Cake\Mailer\Message

    Message instance.

  • $messageClass protected
    string

    Message class name.

  • $renderer protected
    Cake\Mailer\Renderer|null

    Email Renderer

Method Summary

  • __call() public

    Magic method to forward method class to Email instance.

  • __callStatic() public static

    Proxy all static method calls (for methods provided by StaticConfigTrait) to Mailer.

  • __clone() public

    Clone Renderer instance when email object is cloned.

  • __construct() public

    Constructor

  • __serialize() public

    Magic method used for serializing the Email object.

  • __unserialize() public

    Magic method used to rebuild the Email object.

  • _logDelivery() protected

    Log the email message delivery.

  • createFromArray() public

    Configures an email instance object from serialized config.

  • deliver() public static

    Static method to fast create an instance of \Cake\Mailer\Email

  • flatten() protected

    Converts given value to string

  • getMessage() public

    Get message instance.

  • getProfile() public

    Gets the configuration profile to use for this instance.

  • getRenderer() public

    Get email renderer.

  • getTransport() public

    Gets the transport.

  • getViewRenderer() public

    Gets view class for render.

  • getViewVars() public

    Gets variables to be set on render.

  • jsonSerialize() public

    Serializes the email object to a value that can be natively serialized and re-used to clone this email instance.

  • message() public

    Get generated message (used by transport classes)

  • render() public

    Render email.

  • reset() public

    Reset all the internal variables to be able to send out a new email.

  • send() public

    Send an email using the specified content, template and layout

  • serialize() public

    Serializes the Email object.

  • setProfile() public

    Sets the configuration profile to use for this instance.

  • setRenderer() public

    Set email renderer.

  • setTransport() public

    Sets the transport.

  • setViewRenderer() public

    Sets view class for render.

  • setViewVars() public

    Sets variables to be set on render.

  • unserialize() public

    Unserializes the Email object.

  • viewBuilder() public

    Get view builder.

Method Detail

__call() public

__call(string $method, array $args): $this|mixed

Magic method to forward method class to Email instance.

Parameters

string $method

Method name.

array $args

Method arguments

Returns

$this|mixed

__callStatic() public static

__callStatic(string $name, array $arguments): mixed

Proxy all static method calls (for methods provided by StaticConfigTrait) to Mailer.

Parameters

string $name

Method name.

array $arguments

Method argument.

Returns

mixed

__clone() public

__clone(): void

Clone Renderer instance when email object is cloned.

Returns

void

__construct() public

__construct(array<string, mixed>|string|null $config = null)

Constructor

Parameters

array<string, mixed>|string|null $config optional

Array of configs, or string to load configs from app.php

__serialize() public

__serialize(): array

Magic method used for serializing the Email object.

Returns

array

__unserialize() public

__unserialize(array $data): void

Magic method used to rebuild the Email object.

Parameters

array $data

Data array.

Returns

void

_logDelivery() protected

_logDelivery(array<string, string> $contents): void

Log the email message delivery.

Parameters

array<string, string> $contents

The content with 'headers' and 'message' keys.

Returns

void

createFromArray() public

createFromArray(array<string, mixed> $config): $this

Configures an email instance object from serialized config.

Parameters

array<string, mixed> $config

Email configuration array.

Returns

$this

deliver() public static

deliver(array|string|null $to = null, string|null $subject = null, array|string|null $message = null, array<string, mixed>|string $config = 'default', bool $send = true): Cake\Mailer\Email

Static method to fast create an instance of \Cake\Mailer\Email

Parameters

array|string|null $to optional

Address to send ({@see \Cake\Mailer\Email::setTo()}). If null, will try to use 'to' from transport config

string|null $subject optional

String of subject or null to use 'subject' from transport config

array|string|null $message optional

String with message or array with variables to be used in render

array<string, mixed>|string $config optional

String to use Email delivery profile from app.php or array with configs

bool $send optional

Send the email or just return the instance pre-configured

Returns

Cake\Mailer\Email

Throws

InvalidArgumentException

flatten() protected

flatten(array<string>|string $value): string

Converts given value to string

Parameters

array<string>|string $value

The value to convert

Returns

string

getMessage() public

getMessage(): Cake\Mailer\Message

Get message instance.

Returns

Cake\Mailer\Message

getProfile() public

getProfile(): array<string, mixed>

Gets the configuration profile to use for this instance.

Returns

array<string, mixed>

getRenderer() public

getRenderer(): Cake\Mailer\Renderer

Get email renderer.

Returns

Cake\Mailer\Renderer

getTransport() public

getTransport(): Cake\Mailer\AbstractTransport|null

Gets the transport.

Returns

Cake\Mailer\AbstractTransport|null

getViewRenderer() public

getViewRenderer(): string

Gets view class for render.

Returns

string

getViewVars() public

getViewVars(): array<string, mixed>

Gets variables to be set on render.

Returns

array<string, mixed>

jsonSerialize() public

jsonSerialize(): array

Serializes the email object to a value that can be natively serialized and re-used to clone this email instance.

Returns

array

Throws

Exception
When a view var object can not be properly serialized.

message() public

message(string|null $type = null): array|string

Get generated message (used by transport classes)

Parameters

string|null $type optional

Use MESSAGE_* constants or null to return the full message as array

Returns

array|string

render() public

render(array<string>|string|null $content = null): void

Render email.

Parameters

array<string>|string|null $content optional

Content array or string

Returns

void

reset() public

reset(): $this

Reset all the internal variables to be able to send out a new email.

Returns

$this

send() public

send(array<string>|string|null $content = null): array

Send an email using the specified content, template and layout

Parameters

array<string>|string|null $content optional

String with message or array with messages

Returns

array

Throws

BadMethodCallException

serialize() public

serialize(): string

Serializes the Email object.

Returns

string

setProfile() public

setProfile(array<string, mixed>|string $config): $this

Sets the configuration profile to use for this instance.

Parameters

array<string, mixed>|string $config

String with configuration name, or an array with config.

Returns

$this

setRenderer() public

setRenderer(Cake\Mailer\Renderer $renderer): $this

Set email renderer.

Parameters

Cake\Mailer\Renderer $renderer

Render instance.

Returns

$this

setTransport() public

setTransport(Cake\Mailer\AbstractTransport|string $name): $this

Sets the transport.

When setting the transport you can either use the name of a configured transport or supply a constructed transport.

Parameters

Cake\Mailer\AbstractTransport|string $name

Either the name of a configured transport, or a transport instance.

Returns

$this

Throws

LogicException
When the chosen transport lacks a send method.
InvalidArgumentException
When $name is neither a string nor an object.

setViewRenderer() public

setViewRenderer(string $viewClass): $this

Sets view class for render.

Parameters

string $viewClass

View class name.

Returns

$this

setViewVars() public

setViewVars(array<string, mixed> $viewVars): $this

Sets variables to be set on render.

Parameters

array<string, mixed> $viewVars

Variables to set for view.

Returns

$this

unserialize() public

unserialize(string $data): void

Unserializes the Email object.

Parameters

string $data

Serialized string.

Returns

void

viewBuilder() public

viewBuilder(): Cake\View\ViewBuilder

Get view builder.

Returns

Cake\View\ViewBuilder

Property Detail

$_profile protected

A copy of the configuration profile for this instance. This copy can be modified with Email::profile().

Type

array<string, mixed>

$_transport protected

The transport instance to use for sending mail.

Type

Cake\Mailer\AbstractTransport|null

$message protected

Message instance.

Type

Cake\Mailer\Message

$messageClass protected

Message class name.

Type

string

$renderer protected

Email Renderer

Type

Cake\Mailer\Renderer|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.Email.html