MailerService
in package
Point d'entrée unique pour l'envoi des e-mails transactionnels de l'application.
Encapsule le MailerInterface de Symfony et construit des TemplatedEmail dont le
gabarit Twig est systématiquement résolu sous templates/email/. L'expéditeur (adresse et
nom) provient de la configuration du conteneur. Le service expose à la fois des primitives
génériques (self::sendEmail(), self::sendEmailToMultiple()) et des méthodes
métier prêtes à l'emploi : réinitialisation de mot de passe, confirmation d'abonnement,
cycle de vie des commandes de cartes physiques et notification du designer. Tous les envois
sont synchrones du point de vue de l'appelant (le transport peut néanmoins être asynchrone
via Messenger).
Table of Contents
Properties
- $fromEmail : string
- $fromName : string
- $mailer : MailerInterface
- $router : UrlGeneratorInterface
Methods
- __construct() : mixed
- getFromEmail() : string
- Retourne l'adresse d'expédition configurée.
- getFromName() : string
- Retourne le nom d'expéditeur configuré.
- sendDesignInfoToDesigner() : void
- Envoie les informations de design au designer
- sendEmail() : void
- Envoie un e-mail HTML à un destinataire unique à partir d'un gabarit Twig.
- sendEmailToMultiple() : void
- Send email to multiple recipients
- sendErrorMail() : void
- Envoie un e-mail de notification d'erreur à l'équipe technique.
- sendOrderStatusUpdate() : void
- Envoie un email de changement de statut de commande
- sendPasswordResetEmail() : void
- Envoie à un utilisateur le lien de réinitialisation de son mot de passe.
- sendPhysicalCardOrderConfirmation() : void
- Envoie un email de confirmation de commande de carte physique
- sendSubscriptionConfirmation() : void
- Envoie un email de confirmation d'abonnement
Properties
$fromEmail
private
string
$fromEmail
$fromName
private
string
$fromName
$mailer read-only
private
MailerInterface
$mailer
$router read-only
private
UrlGeneratorInterface
$router
Methods
__construct()
public
__construct(MailerInterface $mailer, UrlGeneratorInterface $router, string $mailerFromEmail, string $mailerFromName) : mixed
Parameters
- $mailer : MailerInterface
-
Transport Symfony effectuant l'envoi réel des messages.
- $router : UrlGeneratorInterface
-
Générateur d'URL, utilisé pour produire des liens absolus dans les e-mails.
- $mailerFromEmail : string
-
Adresse d'expédition par défaut, injectée depuis la configuration.
- $mailerFromName : string
-
Nom d'expéditeur affiché, injecté depuis la configuration.
getFromEmail()
Retourne l'adresse d'expédition configurée.
public
getFromEmail() : string
Return values
string —Adresse e-mail utilisée comme expéditeur de tous les messages.
getFromName()
Retourne le nom d'expéditeur configuré.
public
getFromName() : string
Return values
string —Nom affiché comme expéditeur, hors suffixe ajouté par self::sendErrorMail().
sendDesignInfoToDesigner()
Envoie les informations de design au designer
public
sendDesignInfoToDesigner(array<string, mixed> $designInfo, array<int, string> $recipients) : void
Relaie les données de personnalisation d'une commande de carte physique à l'équipe
de design via self::sendEmailToMultiple() et le gabarit designer_info.
L'objet du message reprend $designInfo['order_id'], cette clé est donc attendue.
Si la liste de destinataires est vide, aucun message n'est envoyé.
Parameters
- $designInfo : array<string, mixed>
-
Informations de design ; doit contenir la clé
order_id. - $recipients : array<int, string>
-
Adresses e-mail des designers destinataires.
Tags
sendEmail()
Envoie un e-mail HTML à un destinataire unique à partir d'un gabarit Twig.
public
sendEmail(string $to, string $subject, string $path, array<string, mixed> $context[, string|null $cc = null ]) : void
Le gabarit est résolu en email/{$path}.html.twig : $path est donc un chemin
relatif sans préfixe ni extension. La copie carbone n'est ajoutée que si $cc est
non vide. Effet de bord : envoi effectif du message via le transport configuré.
Parameters
- $to : string
-
Adresse e-mail du destinataire.
- $subject : string
-
Objet du message.
- $path : string
-
Nom du gabarit, relatif à
templates/email/et sans le suffixe.html.twig. - $context : array<string, mixed>
-
Variables passées au gabarit Twig.
- $cc : string|null = null
-
Adresse en copie, ou
nullpour n'en ajouter aucune.
Tags
sendEmailToMultiple()
Send email to multiple recipients
public
sendEmailToMultiple(array<int, string> $recipients, string $subject, string $path, array<string, mixed> $context[, string|null $cc = null ]) : void
Envoie un unique message adressé à tous les destinataires (ils sont donc visibles
les uns des autres, puisque ajoutés en To et non en Bcc). Si la liste est vide,
la méthode retourne immédiatement sans rien envoyer. Effet de bord : envoi effectif
du message via le transport configuré.
Parameters
- $recipients : array<int, string>
-
Adresses e-mail des destinataires ; une liste vide annule l'envoi.
- $subject : string
-
Objet du message.
- $path : string
-
Nom du gabarit, relatif à
templates/email/et sans le suffixe.html.twig. - $context : array<string, mixed>
-
Variables passées au gabarit Twig.
- $cc : string|null = null
-
Adresse en copie, ou
nullpour n'en ajouter aucune.
Tags
sendErrorMail()
Envoie un e-mail de notification d'erreur à l'équipe technique.
public
sendErrorMail(string $subject, string $path, array<string, mixed> $context[, string $to = 'camaraabdoulayeroo@gmail.com' ][, string|null $cc = null ]) : void
Identique à self::sendEmail() à ceci près que le nom d'expéditeur est suffixé par « - Erreur » afin d'identifier le message dans la boîte de réception. Le destinataire par défaut est une adresse de maintenance codée en dur dans la signature. Effet de bord : envoi effectif du message.
Parameters
- $subject : string
-
Objet du message.
- $path : string
-
Nom du gabarit, relatif à
templates/email/et sans le suffixe.html.twig. - $context : array<string, mixed>
-
Variables passées au gabarit Twig.
- $to : string = 'camaraabdoulayeroo@gmail.com'
-
Destinataire, par défaut l'adresse de maintenance du projet.
- $cc : string|null = null
-
Adresse en copie, ou
nullpour n'en ajouter aucune.
Tags
sendOrderStatusUpdate()
Envoie un email de changement de statut de commande
public
sendOrderStatusUpdate(Order $order) : void
Traduit le statut courant de la commande en une formulation lisible à partir d'une
table interne couvrant Order::EN_ATTENTE, Order::EN_TRAITEMENT,
Order::TERMINER, Order::REMBOURSE et Order::ANNULER ; tout
statut inconnu retombe sur le libellé générique « mise à jour ». Le gabarit
order_status_update reçoit les variables order et statusMessage.
Parameters
- $order : Order
-
Commande dont le statut vient d'évoluer.
Tags
sendPasswordResetEmail()
Envoie à un utilisateur le lien de réinitialisation de son mot de passe.
public
sendPasswordResetEmail(mixed $user, string $token) : void
Génère une URL absolue vers la route reset_password en y injectant le jeton, puis
expédie le gabarit email/reset_password.html.twig avec la seule variable url.
Aucun contrôle de validité ou d'expiration du jeton n'est réalisé ici : sa création
et sa persistance relèvent de l'appelant. Effet de bord : envoi effectif du message.
Parameters
- $user : mixed
-
Utilisateur destinataire ; seule la méthode
getEmail()est appelée sur cet objet. - $token : string
-
Jeton de réinitialisation à placer dans l'URL.
Tags
Return values
void —Aucune valeur de retour signifiante (la méthode n'est pas typée).
sendPhysicalCardOrderConfirmation()
Envoie un email de confirmation de commande de carte physique
public
sendPhysicalCardOrderConfirmation(Order $order) : void
Dérive du mode de paiement de la commande un libellé et un texte d'instructions
affichés dans le gabarit order_created :
PRO_SUBSCRIPTION: « Abonnement Pro (gratuit) », carte traitée et expédiée ;CASH_ON_DELIVERY: paiement à la livraison, avec le total formaté à deux décimales et libellé en euros ;- tout autre cas : carte bancaire, paiement présenté comme déjà encaissé.
Le contexte Twig expose
order,paymentMethodetinstructions.
Parameters
- $order : Order
-
Commande concernée ; son utilisateur doit disposer d'une adresse e-mail.
Tags
sendSubscriptionConfirmation()
Envoie un email de confirmation d'abonnement
public
sendSubscriptionConfirmation(mixed $user, mixed $subscription) : void
Délègue à self::sendEmail() avec le gabarit subscription_confirmation et
un objet mentionnant l'activation de l'offre Pro, quel que soit le plan réellement
souscrit. Le contexte Twig expose les variables user et subscription.
Parameters
- $user : mixed
-
Utilisateur destinataire ; seule la méthode
getEmail()est appelée. - $subscription : mixed
-
Abonnement transmis tel quel au gabarit.