EmailService

Type
Class
Namespace
Craft
Inherits
Craft\EmailService » Craft\BaseApplicationComponent » CApplicationComponent (opens new window) » CComponent (opens new window)
Implements
IApplicationComponent
Since
1.0

EmailService provides APIs for sending email in Craft.

An instance of EmailService is globally accessible in Craft via {@link WebApp::email craft()->email}.

See also http://craftcms.com

View source (opens new window)

# Public Properties

Property Description
$behaviors (opens new window) array (opens new window) – The behaviors that should be attached to this component.

# Public Methods

Method Description
__call() (opens new window) Calls the named method which is not a class method.
__get() (opens new window) Returns a property value, an event handler list or a behavior based on its name.
__isset() (opens new window) Checks if a property value is null.
__set() (opens new window) Sets value of a component property.
__unset() (opens new window) Sets a component property to be null.
asa() (opens new window) Returns the named behavior object.
attachBehavior() (opens new window) Attaches a behavior to this component.
attachBehaviors() (opens new window) Attaches a list of behaviors to the component.
attachEventHandler() (opens new window) Attaches an event handler to an event.
canGetProperty() (opens new window) Determines whether a property can be read.
canSetProperty() (opens new window) Determines whether a property can be set.
detachBehavior() (opens new window) Detaches a behavior from the component.
detachBehaviors() (opens new window) Detaches all behaviors from the component.
detachEventHandler() (opens new window) Detaches an existing event handler.
disableBehavior() (opens new window) Disables an attached behavior.
disableBehaviors() (opens new window) Disables all behaviors attached to this component.
enableBehavior() (opens new window) Enables an attached behavior.
enableBehaviors() (opens new window) Enables all behaviors attached to this component.
evaluateExpression() (opens new window) Evaluates a PHP expression or callback under the context of this component.
getEventHandlers() (opens new window) Returns the list of attached event handlers for an event.
getIsInitialized() (opens new window) Checks if this application component has been initialized.
getSettings() Returns the system email settings defined in Settings → Email.
hasEvent() (opens new window) Determines whether an event is defined.
hasEventHandler() (opens new window) Checks whether the named event has attached handlers.
hasProperty() (opens new window) Determines whether a property is defined.
init() (opens new window) Initializes the application component.
isInitialized() Checks if this application component has been initialized yet, or not.
onBeforeSendEmail() Fires an 'onBeforeSendEmail' event.
onSendEmail() Fires an 'onSendEmail' event.
onSendEmailError() Fires an 'onSendEmailError' event.
raiseEvent() (opens new window) Raises an event.
sendEmail() Sends an email based on the attributes of the given {@link EmailModel}.
sendEmailByKey() Sends an email by a given key.
sendTestEmail() Sends a test email using the given settings.

# getSettings()

Returns the system email settings defined in Settings → Email.

View source (opens new window)

Returns

array (opens new window) – The system email settings.

Signature

public array getSettings ( )

# onBeforeSendEmail()

Fires an 'onBeforeSendEmail' event.

View source (opens new window)

Arguments

Signature

public void onBeforeSendEmail ( Craft\Event $event )

# onSendEmail()

Fires an 'onSendEmail' event.

View source (opens new window)

Arguments

Signature

public void onSendEmail ( Craft\Event $event )

# onSendEmailError()

Fires an 'onSendEmailError' event.

View source (opens new window)

Arguments

Signature

public void onSendEmailError ( Craft\Event $event )

# sendEmail()

Sends an email based on the attributes of the given {@link EmailModel}. Emails sent with sendEmail() will have both plain text and HTML bodies, leaving it up to the email client to decide which one to show.

The plain text body’s template is defined by the EmailModel’s {@link EmailModel::body body} attribute, and the HTML body’s template is defined by the {@link EmailModel::htmlBody htmlBody} attribute. If the htmlBody attribute is not set, then the HTML body will be automatically generated by running the plain text body through {@link StringHelper::parseMarkdown() Markdown}.

Both the plain text and HTML bodies of the email will be rendered with Twig. A user variable will be available to them, which will be set to a {@link UserModel} representing the user that the email is getting sent to (identified by the EmailModel’s {@link EmailModel::toEmail toEmail} attribute). Any variables passed into sendEmail()’s $variables argument will alse be made available to the templates.

$email = new EmailModel();
$email->toEmail = 'hello@example.com';
$email->subject = 'Heyyyyy';
$email->body    = 'How you doin, {{ user.name }}?';

craft()->email->sendEmail($email);

View source (opens new window)

Arguments

  • $emailModel (Craft\EmailModel) – The EmailModel object that defines information about the email to be sent.
  • $variables (array (opens new window)) – Any variables that should be made available to the email’s plain text and HTML bodies as they are being rendered with Twig, in addition to the user variable.

Returns

boolean (opens new window) – Whether the email was successfully sent.

Signature

public boolean sendEmail ( Craft\EmailModel $emailModel, $variables = [] )

# sendEmailByKey()

Sends an email by a given key. Craft has four predefined email keys: account_activation, verify_new_email, forgot_password, and test_email.

Plugins can register additional email keys using the registerEmailMessages (opens new window) hook, and by providing the corresponding language strings.

craft()->email->sendEmailByKey($user, 'account_activation', array(
    'link' => $activationUrl
));

View source (opens new window)

Arguments

Returns

boolean (opens new window) – Whether the email was successfully sent.

Throws

Signature

public boolean sendEmailByKey ( Craft\UserModel $user, $key, $variables = [] )

# sendTestEmail()

Sends a test email using the given settings.

View source (opens new window)

Arguments

Returns

boolean (opens new window) – Whether the email was successfully sent.

Signature

public boolean sendTestEmail ( $settings )