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
])
;
}