Class yii\swiftmailer\Mailer

Inheritanceyii\swiftmailer\Mailer » yii\mail\BaseMailer » yii\base\Component » yii\base\BaseObject
Implementsyii\base\Configurable, yii\base\ViewContextInterface, yii\mail\MailerInterface
Available since version2.0
Source Code https://github.com/yiisoft/yii2-swiftmailer/blob/master/Mailer.php

Mailer implements a mailer based on SwiftMailer.

To use Mailer, you should configure it in the application configuration like the following:

[
    'components' => [
        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'localhost',
                'username' => 'username',
                'password' => 'password',
                'port' => '587',
                'encryption' => 'tls',
            ],
        ],
        // ...
    ],
    // ...
],

You may also skip the configuration of the $transport property. In that case, the default \Swift_SendmailTransport transport will be used to send emails.

You specify the transport constructor arguments using 'constructArgs' key in the config. You can also specify the list of plugins, which should be registered to the transport using 'plugins' key. For example:

'transport' => [
    'class' => 'Swift_SmtpTransport',
    'constructArgs' => ['localhost', 25],
    'plugins' => [
        [
            'class' => 'Swift_Plugins_ThrottlerPlugin',
            'constructArgs' => [20],
        ],
    ],
],

To send an email, you may use the following code:

Yii::$app->mailer->compose('contact/html', ['contactForm' => $form])
    ->setFrom('from@domain.com')
    ->setTo($form->email)
    ->setSubject($form->subject)
    ->send();

See also http://swiftmailer.org.

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
$behaviors yii\base\Behavior[] List of behaviors attached to this component. This property is read-only. yii\base\Component
$enableSwiftMailerLogging boolean Whether to enable writing of the SwiftMailer internal logs using Yii log mechanism. yii\swiftmailer\Mailer
$fileTransportCallback callable A PHP callback that will be called by send() when $useFileTransport is true. yii\mail\BaseMailer
$fileTransportPath string The directory where the email messages are saved when $useFileTransport is true. yii\mail\BaseMailer
$htmlLayout string|boolean HTML layout view name. yii\mail\BaseMailer
$messageClass string Message default class name. yii\swiftmailer\Mailer
$messageConfig array The configuration that should be applied to any newly created email message instance by createMessage() or compose(). yii\mail\BaseMailer
$swiftMailer array|\Swift_Mailer Swift mailer instance or array configuration. This property is read-only. yii\swiftmailer\Mailer
$textLayout string|boolean Text layout view name. yii\mail\BaseMailer
$transport array|\Swift_Transport This property is read-only. yii\swiftmailer\Mailer
$useFileTransport boolean Whether to save email messages as files under $fileTransportPath instead of sending them to the actual recipients. yii\mail\BaseMailer
$view yii\web\View View instance. Note that the type of this property differs in getter and setter. See getView() and setView() for details. yii\mail\BaseMailer
$viewPath string The directory that contains the view files for composing mail messages Defaults to '@app/mail'. yii\mail\BaseMailer

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
afterSend() This method is invoked right after mail was send. yii\mail\BaseMailer
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
beforeSend() This method is invoked right before mail send. yii\mail\BaseMailer
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
className() Returns the fully qualified name of this class. yii\base\BaseObject
compose() Creates a new message instance and optionally composes its body content via view rendering. yii\mail\BaseMailer
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
generateMessageFileName() yii\mail\BaseMailer
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
getSwiftMailer() yii\swiftmailer\Mailer
getTransport() yii\swiftmailer\Mailer
getView() yii\mail\BaseMailer
getViewPath() yii\mail\BaseMailer
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() Initializes the object. yii\base\BaseObject
off() Detaches an existing event handler from this component. yii\base\Component
on() Attaches an event handler to an event. yii\base\Component
render() Renders the specified view with optional parameters and layout. yii\mail\BaseMailer
send() Sends the given email message. yii\mail\BaseMailer
sendMultiple() Sends multiple messages at once. yii\mail\BaseMailer
setTransport() yii\swiftmailer\Mailer
setView() yii\mail\BaseMailer
setViewPath() yii\mail\BaseMailer
trigger() Triggers an event. yii\base\Component

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
createMessage() Creates a new message instance. yii\mail\BaseMailer
createSwiftMailer() Creates Swift mailer instance. yii\swiftmailer\Mailer
createSwiftObject() Creates Swift library object, from given array configuration. yii\swiftmailer\Mailer
createTransport() Creates email transport instance by its array configuration. yii\swiftmailer\Mailer
createView() Creates view instance from given configuration. yii\mail\BaseMailer
saveMessage() Saves the message as a file under $fileTransportPath. yii\mail\BaseMailer
sendMessage() Sends the specified message. yii\swiftmailer\Mailer

Events

Hide inherited events

EventTypeDescriptionDefined By
EVENT_AFTER_SEND yii\mail\MailEvent An event raised right after send. yii\mail\BaseMailer
EVENT_BEFORE_SEND yii\mail\MailEvent An event raised right before send. yii\mail\BaseMailer

Property Details

$enableSwiftMailerLogging public property (available since version 2.0.4)

Whether to enable writing of the SwiftMailer internal logs using Yii log mechanism. If enabled yii\swiftmailer\Logger plugin will be attached to the $transport for this purpose.

See also yii\swiftmailer\Logger.

$messageClass public property

Message default class name.

public string $messageClass 'yii\swiftmailer\Message'
$swiftMailer public property

Swift mailer instance or array configuration. This property is read-only.

public array|\Swift_Mailer $swiftMailer null
$transport public property

This property is read-only.

public array|\Swift_Transport $transport null

Method Details

createSwiftMailer() protected method

Creates Swift mailer instance.

protected \Swift_Mailer createSwiftMailer ( )
return \Swift_Mailer

Mailer instance.

createSwiftObject() protected method

Creates Swift library object, from given array configuration.

protected Object createSwiftObject ( array $config )
$config array

Object configuration

return Object

Created object

throws yii\base\InvalidConfigException

on invalid configuration.

createTransport() protected method

Creates email transport instance by its array configuration.

protected \Swift_Transport createTransport ( array $config )
$config array

Transport configuration.

return \Swift_Transport

Transport instance.

throws yii\base\InvalidConfigException

on invalid transport configuration.

getSwiftMailer() public method

public array|\Swift_Mailer getSwiftMailer ( )
return array|\Swift_Mailer

Swift mailer instance or array configuration.

getTransport() public method

public array|\Swift_Transport getTransport ( )
sendMessage() protected method

Sends the specified message.

This method should be implemented by child classes with the actual email sending logic.

protected boolean sendMessage ( $message )
$message yii\mail\MessageInterface

The message to be sent

return boolean

Whether the message is sent successfully

setTransport() public method

public void setTransport ( $transport )
$transport array|\Swift_Transport
throws yii\base\InvalidConfigException

on invalid argument.