Make sure Composer is installed globally, as explained in the installation chapter of the Composer documentation.
Open a command console, enter your project directory and execute:
$ composer require projet-normandie/email-bundle
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
$ composer require projet-normandie/email-bundle
Then, enable the bundle by adding it to the list of registered bundles
in the config/bundles.php
file of your project:
// config/bundles.php
return [
// ...
ProjetNormandie\EmailBundle\ProjetNormandieEmailBundle::class => ['all' => true],
];
In order to link your User entity to this module you should add the following configuration: (Replace AppBundle\Entity\User with your user class).
# Doctrine Configuration - config.yml
doctrine:
orm:
resolve_target_entities:
ProjetNormandie\EmailBundle\Entity\UserInterface: AppBundle\Entity\User
After resolving the entity you can update your database schema.
The from has to be set globally.
projet_normandie_email:
from: "no-reply@projetnormandie.com"
to: "contact@projetnormandie.com"
Note that the from can be overwritten when constructing the mail.
Example of usage:
use ProjetNormandie\EmailBundle\Entity\Email;
use ProjetNormandie\EmailBundle\Service\Mailer;
private $mailer;
/**
* @param Mailer $mailer
*/
public function __construct(Mailer $mailer)
{
$this->mailer = $mailer;
}
public function sendEemail()
{
$mail = new Email();
$mail
->setTargetMail($email)
->setSubject($subject)
->setBodyHtml($body)
->setBodyText($body);
$this->mailer->send($mail);
}