mailer
![Software License][ico-license]
![Coverage Status][ico-scrutinizer]
![Total Downloads][ico-downloads], (*1)
This package aims to simplify sending emails., (*2)
Emails are send with swift mailer though the SwiftMailerBridge, however, you can implement your own if you want. As long as it implements the Mailer., (*3)
For now, using (twig) templates is only supported with the MailerBundle., (*4)
Install
Via Composer, (*5)
``` bash
$ composer require jdr/mailer, (*6)
## Usage
``` php
<?php
use JDR\Mailer\EmailType;
use JDR\Mailer\Email\Address;
use JDR\Mailer\Part;
/**
* The EmailType defines the message.
*/
class WelcomeEmail implements EmailType
{
/**
* @var User
*/
private $user;
/**
* Constructor.
*
* @param User $user
*/
public function __construct(User $user)
{
$this->user = $user;
}
/**
* {@inheritdoc}
*/
public function buildEmail(EmailBuilder $builder)
{
$builder
->add(new Part\Sender(
new Address('hello@example.com', 'Hello Example')
))
->add(new Part\Recipients(
new Address($this->user->getEmail(), $this->user->getUsername())
))
->add(new Part\Subject(
'Welcome {{ username }}',
[
'{{ username }}' => $this->user->getUsername(),
]
))
->add(new Part\Message(
'text/html',
<<<EOT
Welcome {{ username }},
Thank you for choosing jdr/mailer, enjoy your stay.
EOT
,
[
'{{ username }}' => $this->user->getUsername(),
]
))
;
}
}
// Create a new Mailer (i.e. SwiftMailer)
$mailer = new SwiftMailer();
$mailer->sendEmail(new WelcomeEmail($user));
Change log
Please see CHANGELOG for more information what has changed recently., (*7)
Testing
bash
$ composer test
, (*8)
Contributing
Please see CONTRIBUTING and CONDUCT for details., (*9)
Security
If you discover any security related issues, please email dev@johanderuijter.nl instead of using the issue tracker., (*10)
Credits
License
The MIT License (MIT). Please see License File for more information., (*11)