BCard - Documentation technique

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

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
throws
TransportExceptionInterface

Si le transport échoue à remettre le message.

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 null pour n'en ajouter aucune.

Tags
throws
TransportExceptionInterface

Si le transport échoue à remettre le message.

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 null pour n'en ajouter aucune.

Tags
throws
TransportExceptionInterface

Si le transport échoue à remettre le message.

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 null pour n'en ajouter aucune.

Tags
throws
TransportExceptionInterface

Si le transport échoue à remettre le message.

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
throws
TransportExceptionInterface

Si le transport échoue à remettre le message.

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
throws
TransportExceptionInterface

Si le transport échoue à remettre le message.

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, paymentMethod et instructions.
Parameters
$order : Order

Commande concernée ; son utilisateur doit disposer d'une adresse e-mail.

Tags
throws
TransportExceptionInterface

Si le transport échoue à remettre le message.

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.

Tags
throws
TransportExceptionInterface

Si le transport échoue à remettre le message.


        
On this page

Search results