In the Craft 3 Class Reference (https://docs.craftcms.com/api/v3), there are two classes under craft\mail:

  • Mailer
  • Message

I found that I was able to send an email using this:


use craft\mail\Message;

$message = new Message();
$message->setSubject("Hello world.");
$message->setHtmlBody("Hello world.");

But I found in some examples, like this one, that the email could be send using Craft::$app->mailer->send($message) instead of $message->send().

What's the difference between the Mailer and the Message classes? When should I use one instead of the other?


They're both valid options.

$message->send() is a wrapper for Mailer:


It will take an optional Mailer parameter. If one is not passed it, it will default to the default Yii/Craft::$app->mailer and ultimately just call send() on it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.