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
Inherited Properties
Method Summary
- Magic method to forward method class to Email instance.
- Constructor.
- Returns the mailer's name.
- Implemented events.
- Sets layout to use.
- Reset email instance.
- Sends email.
- Sets email view vars.
- Get Email instance's view builder.
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
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( 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
_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
- 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( $email = , $name = )
Parameters
-
$email
optional -
$name
optional
Returns
Cake\Mailer\Mailer
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
array
getBcc()source public
getBcc( )
Returns
array
getCc()source public
getCc( )
Returns
array
getCharset()source public
getCharset( )
Returns
string
getDomain()source public
getDomain( )
Returns
string
getEmailFormat()source public
getEmailFormat( )
Returns
string
getEmailPattern()source public
getEmailPattern( )
Returns
string
getFrom()source public
getFrom( )
Returns
array
getHeaderCharset()source public
getHeaderCharset( )
Returns
string
getHeaders()source public
getHeaders( array $include = )
Parameters
- array
$include
optional
Returns
Cake\Mailer\Mailer
getHelpers()source public
getHelpers( )
Returns
array
getLayout()source public
getLayout( )
Returns
string
getMessageId()source public
getMessageId( )
Returns
boolean|string
getProfile()source public
getProfile( )
Returns
string|array
getReadReceipt()source public
getReadReceipt( )
Returns
array
getReplyTo()source public
getReplyTo( )
Returns
array
getReturnPath()source public
getReturnPath( )
Returns
array
getSender()source public
getSender( )
Returns
array
getSubject()source public
getSubject( )
Returns
string
getTemplate()source public
getTemplate( )
Returns
string
getTheme()source public
getTheme( )
Returns
string
getTo()source public
getTo( )
Returns
array
getTransport()source public
getTransport( )
Returns
Cake\Mailer\AbstractTransport
getViewRenderer()source public
getViewRenderer( )
Returns
string
getViewVars()source public
getViewVars( )
Returns
array
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( $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
Properties detail
$_clonedEmailsource
protected Cake\Mailer\Email
Cloned Email instance for restoring instance after email is sent by mailer action.
public static string
Mailer's name.