Skip to content

Commit 9dce47d

Browse files
committed
Mailable base class
1 parent 83689eb commit 9dce47d

1 file changed

Lines changed: 26 additions & 1 deletion

File tree

docs/6.x/extend/mail.md

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,32 @@ Mail::send($message);
3939
## Other Mailables
4040

4141
A system messages is just one implementation of Laravel’s `Mailable`, with the notable limitation of requiring an existing Craft user.
42-
For all other email, extend our `CraftCms\Cms\Email\Mailables\CraftMailable` base class to apply site-specific mailer overrides.
42+
For all other email, extend our `CraftCms\Cms\Email\Mailables\CraftMailable` class:
43+
44+
```php
45+
namespace MyOrg\Activity\Notifications;
46+
47+
use CraftCms\Cms\Email\Mailables\CraftMailable;
48+
49+
class ReportFinished extends CraftMailable
50+
{
51+
public int $reportId;
52+
public string $summary = '';
53+
54+
// ...
55+
}
56+
```
57+
58+
This gives your mailables a `siteId` property, which helps Craft pick up site-specific mailer overrides before sending:
59+
60+
```php
61+
$message = new ReportFinished($report);
62+
$message->setTo($report->notifyEmail);
63+
$message->siteId = $report->getTemplate()->siteId;
64+
65+
// Send after resolving mailer overrides for `siteId`:
66+
$message->send();
67+
```
4368

4469
## Mail Events
4570

0 commit comments

Comments
 (0)