# Mail notifier - Documentation of Murph
None

Skip to content

# Mail

`App\Core\Notification\MailNotifier` is a service and helps you to create a mail using twig template.

Useful methods:

- `setRecipients(array $recipients): MailNotifier`
- `setBccRecipients(array $bccRecipients): MailNotifier`
- `setSubject(?string $subject): MailNotifier`
- `setFrom($from): MailNotifier`
- `setReplyTo($replyTo): MailNotifier`
- `setAttachments(array $attachments): MailNotifier`
- `addRecipient(string $email, bool $isBcc = false): MailNotifier`
- `addRecipients(array $emails, bool $isBcc = false): MailNotifier`
- `addRecipientByUser(\App\Entity\User $user, bool $isBcc = false): self`
- `addRecipientsByUsers($users, bool $isBcc = false): self`
- `addAttachment(string $attachment): MailNotifier`
- `addAttachments(array $attachments): MailNotifier`
- `init(): MailNotifier`
- `notify(string $template, array $data = [], string $type = 'text/html'): MailNotifier`

Exemple:

    use App\Core\Notification\MailNotifier;
    use App\Repository\UserRepositoryQuery;

    public function foo(MailNotifier $notifier, UserRepositoryQuery $query)
    {
        // ...

        $notifier
            ->init()
            ->setSubject('Your bill')
            ->addRecipient('john.doe@example.com')
            ->addRecipients(array_map(
                fn($u) => $u->getEmail(),
                $query->create()->where('.isAdmin = true')->find()
            ), true)
            ->addAttachment('path/to/bill.pdf')
            ->notify('mail/bill.html.twig', [
                // view params
            ])
        ;
    }