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()
Signature
public void onBeforeSendEmail ( Craft\Event $event )
# onSendEmail()
Signature
public void onSendEmail ( Craft\Event $event )
# onSendEmailError()
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 theuser
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
$user
(Craft\UserModel) – The user that should receive the email.$key
(string (opens new window)) – The email key.$variables
(array (opens new window)) – Any variables that should be passed to the email body template.
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
$settings
(array (opens new window)) – The email settings to test.
Returns
boolean (opens new window) – Whether the email was successfully sent.
Signature
public boolean sendTestEmail ( $settings )