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
Properties summary
-
$_clonedEmail
protectedCloned Email instance for restoring instance after email is sent by mailer action.
-
$_email
protectedEmail instance. -
$name
public staticstring
Mailer's name.
Inherited Properties
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
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
implementedEvents() public ¶
implementedEvents( )
Implemented events.
Returns
Implementation of
layout() public ¶
layout( string $layout )
Sets layout to use.
Deprecated
Parameters
- string $layout
- Name of the layout to use.
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
Throws
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
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.
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
- string|null $modelType optional null
- The type of repository to load. Defaults to the modelType() value.
Returns
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 ¶
modelType( string|null $modelType null )
Set or get the model type to be used by this class
Deprecated
Parameters
- string|null $modelType optional null
- The model type or null to retrieve the current
Returns
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 )
addBcc() public ¶
addBcc( $email , $name )
addCc() public ¶
addCc( $email , $name )
addHeaders() public ¶
addHeaders( array $headers )
addTo() public ¶
addTo( $email , $name )
attachments() public ¶
attachments( $attachments )
bcc() public ¶
bcc( $email , $name )
cc() public ¶
cc( $email , $name )
charset() public ¶
charset( $charset )
domain() public ¶
domain( $domain )
emailFormat() public ¶
emailFormat( $format )
emailPattern() public ¶
emailPattern( $regex )
from() public ¶
from( $email , $name )
getAttachments() public ¶
getAttachments( )
Returns
getBcc() public ¶
getBcc( )
Returns
getCc() public ¶
getCc( )
Returns
getCharset() public ¶
getCharset( )
Returns
getDomain() public ¶
getDomain( )
Returns
getEmailFormat() public ¶
getEmailFormat( )
Returns
getEmailPattern() public ¶
getEmailPattern( )
Returns
getFrom() public ¶
getFrom( )
Returns
getHeaderCharset() public ¶
getHeaderCharset( )
Returns
getHeaders() public ¶
getHeaders( array $include )
getHelpers() public ¶
getHelpers( )
Returns
getLayout() public ¶
getLayout( )
Returns
getMessageId() public ¶
getMessageId( )
Returns
getProfile() public ¶
getProfile( )
Returns
getReadReceipt() public ¶
getReadReceipt( )
Returns
getReplyTo() public ¶
getReplyTo( )
Returns
getReturnPath() public ¶
getReturnPath( )
Returns
getSender() public ¶
getSender( )
Returns
getSubject() public ¶
getSubject( )
Returns
getTemplate() public ¶
getTemplate( )
Returns
getTheme() public ¶
getTheme( )
Returns
getTo() public ¶
getTo( )
Returns
getTransport() public ¶
getTransport( )
Returns
getViewRenderer() public ¶
getViewRenderer( )
Returns
getViewVars() public ¶
getViewVars( )
Returns
headerCharset() public ¶
headerCharset( $charset )
helpers() public ¶
helpers( $helpers )
message() public ¶
message( $type )
messageId() public ¶
messageId( $message )
profile() public ¶
profile( $config )
readReceipt() public ¶
readReceipt( $email , $name )
replyTo() public ¶
replyTo( $email , $name )
returnPath() public ¶
returnPath( $email , $name )
sender() public ¶
sender( $email , $name )
setAttachments() public ¶
setAttachments( $attachments )
setBcc() public ¶
setBcc( $email , $name )
setCc() public ¶
setCc( $email , $name )
setCharset() public ¶
setCharset( $charset )
setDomain() public ¶
setDomain( $domain )
setEmailFormat() public ¶
setEmailFormat( $format )
setEmailPattern() public ¶
setEmailPattern( $regex )
setFrom() public ¶
setFrom( $email , $name )
setHeaderCharset() public ¶
setHeaderCharset( $charset )
setHeaders() public ¶
setHeaders( array $headers )
setHelpers() public ¶
setHelpers( array $helpers )
setLayout() public ¶
setLayout( $layout )
setMessageId() public ¶
setMessageId( $message )
setProfile() public ¶
setProfile( $config )
setReadReceipt() public ¶
setReadReceipt( $email , $name )
setReplyTo() public ¶
setReplyTo( $email , $name )
setReturnPath() public ¶
setReturnPath( $email , $name )
setSender() public ¶
setSender( $email , $name )
setSubject() public ¶
setSubject( $subject )
setTemplate() public ¶
setTemplate( $template )
setTheme() public ¶
setTheme( $theme )
setTo() public ¶
setTo( $email , $name )
setTransport() public ¶
setTransport( $name )
setViewRenderer() public ¶
setViewRenderer( $viewClass )
setViewVars() public ¶
setViewVars( $viewVars )
subject() public ¶
subject( $subject )
template() public ¶
template( $template , $layout )
theme() public ¶
theme( $theme )
to() public ¶
to( $email , $name )
transport() public ¶
transport( $name )
viewRender() public ¶
viewRender( $viewClass )
viewVars() public ¶
viewVars( $viewVars )
Properties detail
$_clonedEmail ¶
Cake\Mailer\Email
Cloned Email instance for restoring instance after email is sent by mailer action.