cakephp / 3.8.3 / class-cake.mailer.mailer.html /

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

Inherited Properties

Method Summary

Method Detail

__call()source 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()source public

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

Constructor.

Parameters

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

getName()source public

getName( )

Returns the mailer's name.

Returns

string

implementedEvents()source public

implementedEvents( )

Implemented events.

Returns

array

Implementation of

Cake\Event\EventListenerInterface::implementedEvents()

layout()source 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()source protected

reset( )

Reset email instance.

Returns


$this

send()source 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()source 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()source public

viewBuilder( )

Get Email instance's view builder.

Returns

Cake\View\ViewBuilder

Methods used from Cake\Datasource\ModelAwareTrait

_setModelClass()source 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()source public

getModelType( )

Get the model type to be used by this class

Returns

string

loadModel()source 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()source 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()source 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()source 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()source public

addAttachments( $attachments )

Parameters

$attachments

Returns

Cake\Mailer\Mailer

addBcc()source public

addBcc( $email , $name = )

Parameters

$email
$name optional

Returns

Cake\Mailer\Mailer

addCc()source public

addCc( $email , $name = )

Parameters

$email
$name optional

Returns

Cake\Mailer\Mailer

addHeaders()source public

addHeaders( array $headers )

Parameters

array $headers

Returns

Cake\Mailer\Mailer

addTo()source public

addTo( $email , $name = )

Parameters

$email
$name optional

Returns

Cake\Mailer\Mailer

attachments()source public

attachments( $attachments = )

Parameters

$attachments optional

Returns

Cake\Mailer\Mailer

bcc()source public

bcc( $email = , $name = )

Parameters

$email optional
$name optional

Returns

Cake\Mailer\Mailer

cc()source public

cc( $email = , $name = )

Parameters

$email optional
$name optional

Returns

Cake\Mailer\Mailer

charset()source public

charset( $charset = )

Parameters

$charset optional

Returns

Cake\Mailer\Mailer

domain()source public

domain( $domain = )

Parameters

$domain optional

Returns

Cake\Mailer\Mailer

emailFormat()source public

emailFormat( $format = )

Parameters

$format optional

Returns

Cake\Mailer\Mailer

emailPattern()source public

emailPattern( $regex = )

Parameters

$regex optional

Returns

Cake\Mailer\Mailer

from()source public

from( $email = , $name = )

Parameters

$email optional
$name optional

Returns

Cake\Mailer\Mailer

getAttachments()source public

getAttachments( )

Returns


getBcc()source public

getBcc( )

Returns


getCc()source public

getCc( )

Returns


getCharset()source public

getCharset( )

Returns


getDomain()source public

getDomain( )

Returns


getEmailFormat()source public

getEmailFormat( )

Returns


getEmailPattern()source public

getEmailPattern( )

Returns


getFrom()source public

getFrom( )

Returns


getHeaderCharset()source public

getHeaderCharset( )

Returns


getHeaders()source public

getHeaders( array $include = )

Parameters

array $include optional

Returns

Cake\Mailer\Mailer

getHelpers()source public

getHelpers( )

Returns


getLayout()source public

getLayout( )

Returns


getMessageId()source public

getMessageId( )

Returns


getProfile()source public

getProfile( )

Returns


getReadReceipt()source public

getReadReceipt( )

Returns


getReplyTo()source public

getReplyTo( )

Returns


getReturnPath()source public

getReturnPath( )

Returns


getSender()source public

getSender( )

Returns


getSubject()source public

getSubject( )

Returns


getTemplate()source public

getTemplate( )

Returns


getTheme()source public

getTheme( )

Returns


getTo()source public

getTo( )

Returns


getTransport()source public

getTransport( )

Returns

Cake\Mailer\AbstractTransport

getViewRenderer()source public

getViewRenderer( )

Returns


getViewVars()source public

getViewVars( )

Returns


headerCharset()source public

headerCharset( $charset = )

Parameters

$charset optional

Returns

Cake\Mailer\Mailer

helpers()source public

helpers( $helpers = )

Parameters

$helpers optional

Returns

Cake\Mailer\Mailer

message()source public

message( $type = )

Parameters

$type optional

Returns

Cake\Mailer\Mailer

messageId()source public

messageId( $message = )

Parameters

$message optional

Returns

Cake\Mailer\Mailer

profile()source public

profile( $config = )

Parameters

$config optional

Returns

Cake\Mailer\Mailer

readReceipt()source public

readReceipt( $email = , $name = )

Parameters

$email optional
$name optional

Returns

Cake\Mailer\Mailer

replyTo()source public

replyTo( $email = , $name = )

Parameters

$email optional
$name optional

Returns

Cake\Mailer\Mailer

returnPath()source public

returnPath( $email = , $name = )

Parameters

$email optional
$name optional

Returns

Cake\Mailer\Mailer

sender()source public

sender( $email = , $name = )

Parameters

$email optional
$name optional

Returns

Cake\Mailer\Mailer

setAttachments()source public

setAttachments( $attachments )

Parameters

$attachments

Returns

Cake\Mailer\Mailer

setBcc()source public

setBcc( $email , $name = )

Parameters

$email
$name optional

Returns

Cake\Mailer\Mailer

setCc()source public

setCc( $email , $name = )

Parameters

$email
$name optional

Returns

Cake\Mailer\Mailer

setCharset()source public

setCharset( $charset )

Parameters

$charset

Returns

Cake\Mailer\Mailer

setDomain()source public

setDomain( $domain )

Parameters

$domain

Returns

Cake\Mailer\Mailer

setEmailFormat()source public

setEmailFormat( $format )

Parameters

$format

Returns

Cake\Mailer\Mailer

setEmailPattern()source public

setEmailPattern( $regex )

Parameters

$regex

Returns

Cake\Mailer\Mailer

setFrom()source public

setFrom( $email , $name = )

Parameters

$email
$name optional

Returns

Cake\Mailer\Mailer

setHeaderCharset()source public

setHeaderCharset( $charset )

Parameters

$charset

Returns

Cake\Mailer\Mailer

setHeaders()source public

setHeaders( array $headers )

Parameters

array $headers

Returns

Cake\Mailer\Mailer

setHelpers()source public

setHelpers( array $helpers )

Parameters

array $helpers

Returns

Cake\Mailer\Mailer

setLayout()source public

setLayout( $layout )

Parameters

$layout

Returns

Cake\Mailer\Mailer

setMessageId()source public

setMessageId( $message )

Parameters

$message

Returns

Cake\Mailer\Mailer

setProfile()source public

setProfile( $config )

Parameters

$config

Returns

Cake\Mailer\Mailer

setReadReceipt()source public

setReadReceipt( $email , $name = )

Parameters

$email
$name optional

Returns

Cake\Mailer\Mailer

setReplyTo()source public

setReplyTo( $email , $name = )

Parameters

$email
$name optional

Returns

Cake\Mailer\Mailer

setReturnPath()source public

setReturnPath( $email , $name = )

Parameters

$email
$name optional

Returns

Cake\Mailer\Mailer

setSender()source public

setSender( $email , $name = )

Parameters

$email
$name optional

Returns

Cake\Mailer\Mailer

setSubject()source public

setSubject( $subject )

Parameters

$subject

Returns

Cake\Mailer\Mailer

setTemplate()source public

setTemplate( $template )

Parameters

$template

Returns

Cake\Mailer\Mailer

setTheme()source public

setTheme( $theme )

Parameters

$theme

Returns

Cake\Mailer\Mailer

setTo()source public

setTo( $email , $name = )

Parameters

$email
$name optional

Returns

Cake\Mailer\Mailer

setTransport()source public

setTransport( $name )

Parameters

$name

Returns

Cake\Mailer\Mailer

setViewRenderer()source public

setViewRenderer( $viewClass )

Parameters

$viewClass

Returns

Cake\Mailer\Mailer

setViewVars()source public

setViewVars( $viewVars )

Parameters

$viewVars

Returns

Cake\Mailer\Mailer

subject()source public

subject( $subject = )

Parameters

$subject optional

Returns

Cake\Mailer\Mailer

template()source public

template( $template = , $layout = )

Parameters

$template optional
$layout optional

Returns

Cake\Mailer\Mailer

theme()source public

theme( $theme = )

Parameters

$theme optional

Returns

Cake\Mailer\Mailer

to()source public

to( $email = , $name = )

Parameters

$email optional
$name optional

Returns

Cake\Mailer\Mailer

transport()source public

transport( $name = )

Parameters

$name optional

Returns

Cake\Mailer\Mailer

viewRender()source public

viewRender( $viewClass = )

Parameters

$viewClass optional

Returns

Cake\Mailer\Mailer

viewVars()source public

viewVars( $viewVars = )

Parameters

$viewVars optional

Returns

Cake\Mailer\Mailer
array array array string string string string array string array string boolean|string string|array array array array array string string string array string array

Properties detail

$_clonedEmailsource

protected Cake\Mailer\Email

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

$_emailsource

protected Cake\Mailer\Email

Email instance.

$namesource

public static string

Mailer's name.

© 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/3.8/class-Cake.Mailer.Mailer.html