CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Team
    • Issues (Github)
    • YouTube Channel
    • Get Involved
    • Bakery
    • Featured Resources
    • Newsletter
    • Certification
    • My CakePHP
    • CakeFest
    • Facebook
    • Twitter
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 3.8 Red Velvet API

  • Overview
  • Tree
  • Deprecated
  • Version:
    • 3.8
      • 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

  • Cake
    • Auth
      • Storage
    • Cache
      • Engine
    • Collection
      • Iterator
    • Command
    • Console
      • Exception
    • Controller
      • Component
      • Exception
    • Core
      • Configure
        • Engine
      • Exception
      • Retry
    • Database
      • Driver
      • Exception
      • Expression
      • Schema
      • Statement
      • Type
    • Datasource
      • Exception
    • Error
      • Middleware
    • Event
      • Decorator
    • Filesystem
    • Form
    • Http
      • Client
        • Adapter
        • Auth
      • Cookie
      • Exception
      • Middleware
      • Session
    • I18n
      • Formatter
      • Middleware
      • Parser
    • Log
      • Engine
    • Mailer
      • Exception
      • Transport
    • Network
      • Exception
    • ORM
      • Association
      • Behavior
        • Translate
      • Exception
      • Locator
      • Rule
    • Routing
      • Exception
      • Filter
      • Middleware
      • Route
    • Shell
      • Helper
      • Task
    • TestSuite
      • Fixture
      • Stub
    • Utility
      • Exception
    • Validation
    • View
      • Exception
      • Form
      • Helper
      • Widget
  • None

Classes

  • AbstractTransport
  • Email
  • Mailer
  • TransportFactory
  • TransportRegistry

Traits

  • MailerAwareTrait

Class Mailer

Mailer base class.

Mailer classes let you encapsulate related Email logic into a reusable and testable class.

Defining Messages

Mailers make it easy for you to define methods that handle email formatting logic. For example:

class UserMailer extends Mailer
{
    public function resetPassword($user)
    {
        $this
            ->setSubject('Reset Password')
            ->setTo($user->email)
            ->set(['token' => $user->token]);
    }
}

Is a trivial example but shows how a mailer could be declared.

Sending Messages

After you have defined some messages you will want to send them:

$mailer = new UserMailer();
$mailer->send('resetPassword', $user);

Event Listener

Mailers can also subscribe to application event allowing you to decouple email delivery from your application code. By re-declaring the implementedEvents() method you can define event handlers that can convert events into email. For example, if your application had a user registration event:

public function implementedEvents()
{
    return [
        'Model.afterSave' => 'onRegistration',
    ];
}

public function onRegistration(Event $event, Entity $entity, ArrayObject $options)
{
    if ($entity->isNew()) {
         $this->send('welcome', [$entity]);
    }
}

The onRegistration method converts the application event into a mailer method. Our mailer could either be registered in the application bootstrap, or in the Table class' initialize() hook.

Cake\Mailer\Mailer implements Cake\Event\EventListenerInterface uses Cake\Datasource\ModelAwareTrait
Abstract
Namespace: Cake\Mailer
Location: Mailer/Mailer.php

Properties summary

  • $_clonedEmail protected
    Cake\Mailer\Email

    Cloned Email instance for restoring instance after email is sent by mailer action.

  • $_email protected
    Cake\Mailer\Email
    Email instance.
  • $name public static
    string
    Mailer's name.

Inherited Properties

  • _modelFactories, _modelType, modelClass

Method Summary

  • __call() public
    Magic method to forward method class to Email instance.
  • __construct() public
    Constructor.
  • getName() public
    Returns the mailer's name.
  • implementedEvents() public
    Implemented events.
  • layout() public deprecated
    Sets layout to use.
  • reset() protected
    Reset email instance.
  • send() public
    Sends email.
  • set() public
    Sets email view vars.
  • viewBuilder() public
    Get Email instance's view builder.

Method Detail

__call() public ¶

__call( string $method , array $args )

Magic method to forward method class to Email instance.

Parameters
string $method
Method name.
array $args
Method arguments
Returns

$this|mixed

__construct() public ¶

__construct( Cake\Mailer\Email $email = null )

Constructor.

Parameters
Cake\Mailer\Email $email optional null
Email instance.

getName() public ¶

getName( )

Returns the mailer's name.

Returns
string

implementedEvents() public ¶

implementedEvents( )

Implemented events.

Returns
array
Implementation of
Cake\Event\EventListenerInterface::implementedEvents()

layout() public deprecated ¶

layout( string $layout )

Sets layout to use.

Deprecated
3.4.0 Use setLayout() which sets the layout on the email class instead.
Parameters
string $layout
Name of the layout to use.
Returns

$this

reset() protected ¶

reset( )

Reset email instance.

Returns

$this

send() public ¶

send( string $action , array $args = [] , array $headers = [] )

Sends email.

Parameters
string $action
The name of the mailer action to trigger.
array $args optional []
Arguments to pass to the triggered mailer action.
array $headers optional []
Headers to set.
Returns
array
Throws
Cake\Mailer\Exception\MissingActionException
BadMethodCallException

set() public ¶

set( string|array $key , mixed $value = null )

Sets email view vars.

Parameters
string|array $key
Variable name or hash of view variables.
mixed $value optional null
View variable value.
Returns

$this

viewBuilder() public ¶

viewBuilder( )

Get Email instance's view builder.

Returns
Cake\View\ViewBuilder

Methods used from Cake\Datasource\ModelAwareTrait

_setModelClass() protected ¶

_setModelClass( string $name )

Set the modelClass and modelKey properties based on conventions.

If the properties are already set they will not be overwritten

Parameters
string $name
Class name.

getModelType() public ¶

getModelType( )

Get the model type to be used by this class

Returns
string

loadModel() public ¶

loadModel( string|null $modelClass = null , string|null $modelType = null )

Loads and constructs repository objects required by this object

Typically used to load ORM Table objects as required. Can also be used to load other types of repository objects your application uses.

If a repository provider does not return an object a MissingModelException will be thrown.

Parameters
string|null $modelClass optional null

Name of model class to load. Defaults to $this->modelClass. The name can be an alias like 'Post' or FQCN like App\Model\Table\PostsTable::class.

string|null $modelType optional null
The type of repository to load. Defaults to the modelType() value.
Returns
Cake\Datasource\RepositoryInterface
The model instance created.
Throws
Cake\Datasource\Exception\MissingModelException
If the model class cannot be found.
InvalidArgumentException
When using a type that has not been registered.
UnexpectedValueException
If no model type has been defined

modelFactory() public ¶

modelFactory( string $type , callable $factory )

Override a existing callable to generate repositories of a given type.

Parameters
string $type
The name of the repository type the factory function is for.
callable $factory
The factory function used to create instances.

modelType() public deprecated ¶

modelType( string|null $modelType = null )

Set or get the model type to be used by this class

Deprecated
3.5.0 Use getModelType()/setModelType() instead.
Parameters
string|null $modelType optional null
The model type or null to retrieve the current
Returns
string|Cake\Datasource\ModelAwareTrait
$this

setModelType() public ¶

setModelType( string $modelType )

Set the model type to be used by this class

Parameters
string $modelType
The model type
Returns

$this

Magic methods summary

addAttachments() public ¶

addAttachments( $attachments )

Parameters
$attachments
Returns
Cake\Mailer\Mailer

addBcc() public ¶

addBcc( $email , $name = )

Parameters
$email
$name optional
Returns
Cake\Mailer\Mailer

addCc() public ¶

addCc( $email , $name = )

Parameters
$email
$name optional
Returns
Cake\Mailer\Mailer

addHeaders() public ¶

addHeaders( array $headers )

Parameters
array $headers
Returns
Cake\Mailer\Mailer

addTo() public ¶

addTo( $email , $name = )

Parameters
$email
$name optional
Returns
Cake\Mailer\Mailer

attachments() public ¶

attachments( $attachments = )

Parameters
$attachments optional
Returns
Cake\Mailer\Mailer

bcc() public ¶

bcc( $email = , $name = )

Parameters
$email optional
$name optional
Returns
Cake\Mailer\Mailer

cc() public ¶

cc( $email = , $name = )

Parameters
$email optional
$name optional
Returns
Cake\Mailer\Mailer

charset() public ¶

charset( $charset = )

Parameters
$charset optional
Returns
Cake\Mailer\Mailer

domain() public ¶

domain( $domain = )

Parameters
$domain optional
Returns
Cake\Mailer\Mailer

emailFormat() public ¶

emailFormat( $format = )

Parameters
$format optional
Returns
Cake\Mailer\Mailer

emailPattern() public ¶

emailPattern( $regex = )

Parameters
$regex optional
Returns
Cake\Mailer\Mailer

from() public ¶

from( $email = , $name = )

Parameters
$email optional
$name optional
Returns
Cake\Mailer\Mailer

getAttachments() public ¶

getAttachments( )

Returns
array

getBcc() public ¶

getBcc( )

Returns
array

getCc() public ¶

getCc( )

Returns
array

getCharset() public ¶

getCharset( )

Returns
string

getDomain() public ¶

getDomain( )

Returns
string

getEmailFormat() public ¶

getEmailFormat( )

Returns
string

getEmailPattern() public ¶

getEmailPattern( )

Returns
string

getFrom() public ¶

getFrom( )

Returns
array

getHeaderCharset() public ¶

getHeaderCharset( )

Returns
string

getHeaders() public ¶

getHeaders( array $include = )

Parameters
array $include optional
Returns
Cake\Mailer\Mailer

getHelpers() public ¶

getHelpers( )

Returns
array

getLayout() public ¶

getLayout( )

Returns
string

getMessageId() public ¶

getMessageId( )

Returns
boolean|string

getProfile() public ¶

getProfile( )

Returns
string|array

getReadReceipt() public ¶

getReadReceipt( )

Returns
array

getReplyTo() public ¶

getReplyTo( )

Returns
array

getReturnPath() public ¶

getReturnPath( )

Returns
array

getSender() public ¶

getSender( )

Returns
array

getSubject() public ¶

getSubject( )

Returns
string

getTemplate() public ¶

getTemplate( )

Returns
string

getTheme() public ¶

getTheme( )

Returns
string

getTo() public ¶

getTo( )

Returns
array

getTransport() public ¶

getTransport( )

Returns
Cake\Mailer\AbstractTransport

getViewRenderer() public ¶

getViewRenderer( )

Returns
string

getViewVars() public ¶

getViewVars( )

Returns
array

headerCharset() public ¶

headerCharset( $charset = )

Parameters
$charset optional
Returns
Cake\Mailer\Mailer

helpers() public ¶

helpers( $helpers = )

Parameters
$helpers optional
Returns
Cake\Mailer\Mailer

message() public ¶

message( $type = )

Parameters
$type optional
Returns
Cake\Mailer\Mailer

messageId() public ¶

messageId( $message = )

Parameters
$message optional
Returns
Cake\Mailer\Mailer

profile() public ¶

profile( $config = )

Parameters
$config optional
Returns
Cake\Mailer\Mailer

readReceipt() public ¶

readReceipt( $email = , $name = )

Parameters
$email optional
$name optional
Returns
Cake\Mailer\Mailer

replyTo() public ¶

replyTo( $email = , $name = )

Parameters
$email optional
$name optional
Returns
Cake\Mailer\Mailer

returnPath() public ¶

returnPath( $email = , $name = )

Parameters
$email optional
$name optional
Returns
Cake\Mailer\Mailer

sender() public ¶

sender( $email = , $name = )

Parameters
$email optional
$name optional
Returns
Cake\Mailer\Mailer

setAttachments() public ¶

setAttachments( $attachments )

Parameters
$attachments
Returns
Cake\Mailer\Mailer

setBcc() public ¶

setBcc( $email , $name = )

Parameters
$email
$name optional
Returns
Cake\Mailer\Mailer

setCc() public ¶

setCc( $email , $name = )

Parameters
$email
$name optional
Returns
Cake\Mailer\Mailer

setCharset() public ¶

setCharset( $charset )

Parameters
$charset
Returns
Cake\Mailer\Mailer

setDomain() public ¶

setDomain( $domain )

Parameters
$domain
Returns
Cake\Mailer\Mailer

setEmailFormat() public ¶

setEmailFormat( $format )

Parameters
$format
Returns
Cake\Mailer\Mailer

setEmailPattern() public ¶

setEmailPattern( $regex )

Parameters
$regex
Returns
Cake\Mailer\Mailer

setFrom() public ¶

setFrom( $email , $name = )

Parameters
$email
$name optional
Returns
Cake\Mailer\Mailer

setHeaderCharset() public ¶

setHeaderCharset( $charset )

Parameters
$charset
Returns
Cake\Mailer\Mailer

setHeaders() public ¶

setHeaders( array $headers )

Parameters
array $headers
Returns
Cake\Mailer\Mailer

setHelpers() public ¶

setHelpers( array $helpers )

Parameters
array $helpers
Returns
Cake\Mailer\Mailer

setLayout() public ¶

setLayout( $layout )

Parameters
$layout
Returns
Cake\Mailer\Mailer

setMessageId() public ¶

setMessageId( $message )

Parameters
$message
Returns
Cake\Mailer\Mailer

setProfile() public ¶

setProfile( $config )

Parameters
$config
Returns
Cake\Mailer\Mailer

setReadReceipt() public ¶

setReadReceipt( $email , $name = )

Parameters
$email
$name optional
Returns
Cake\Mailer\Mailer

setReplyTo() public ¶

setReplyTo( $email , $name = )

Parameters
$email
$name optional
Returns
Cake\Mailer\Mailer

setReturnPath() public ¶

setReturnPath( $email , $name = )

Parameters
$email
$name optional
Returns
Cake\Mailer\Mailer

setSender() public ¶

setSender( $email , $name = )

Parameters
$email
$name optional
Returns
Cake\Mailer\Mailer

setSubject() public ¶

setSubject( $subject )

Parameters
$subject
Returns
Cake\Mailer\Mailer

setTemplate() public ¶

setTemplate( $template )

Parameters
$template
Returns
Cake\Mailer\Mailer

setTheme() public ¶

setTheme( $theme )

Parameters
$theme
Returns
Cake\Mailer\Mailer

setTo() public ¶

setTo( $email , $name = )

Parameters
$email
$name optional
Returns
Cake\Mailer\Mailer

setTransport() public ¶

setTransport( $name )

Parameters
$name
Returns
Cake\Mailer\Mailer

setViewRenderer() public ¶

setViewRenderer( $viewClass )

Parameters
$viewClass
Returns
Cake\Mailer\Mailer

setViewVars() public ¶

setViewVars( $viewVars )

Parameters
$viewVars
Returns
Cake\Mailer\Mailer

subject() public ¶

subject( $subject = )

Parameters
$subject optional
Returns
Cake\Mailer\Mailer

template() public ¶

template( $template = , $layout = )

Parameters
$template optional
$layout optional
Returns
Cake\Mailer\Mailer

theme() public ¶

theme( $theme = )

Parameters
$theme optional
Returns
Cake\Mailer\Mailer

to() public ¶

to( $email = , $name = )

Parameters
$email optional
$name optional
Returns
Cake\Mailer\Mailer

transport() public ¶

transport( $name = )

Parameters
$name optional
Returns
Cake\Mailer\Mailer

viewRender() public ¶

viewRender( $viewClass = )

Parameters
$viewClass optional
Returns
Cake\Mailer\Mailer

viewVars() public ¶

viewVars( $viewVars = )

Parameters
$viewVars optional
Returns
Cake\Mailer\Mailer

Properties detail

$_clonedEmail ¶

protected Cake\Mailer\Email

Cloned Email instance for restoring instance after email is sent by mailer action.

$_email ¶

protected Cake\Mailer\Email

Email instance.

$name ¶

public static string

Mailer's name.

Follow @CakePHP
#IRC
OpenHub
Rackspace
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Logos & Trademarks
  • Community
  • Team
  • Issues (Github)
  • YouTube Channel
  • Get Involved
  • Bakery
  • Featured Resources
  • Newsletter
  • Certification
  • My CakePHP
  • CakeFest
  • Facebook
  • Twitter
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs