MailerService
in package
Service d'envoi de notifications par email.
Utilisation du transport mailer Symfony et Twig d'après les modèles définis dans le bundle.
Table of Contents
Constants
- ConfKeys = ['maillog', 'smsdomain', 'fromdomains', 'fromname', 'fromaddr', 'return', 'admins', 'locales', 'formats']
Properties
- $locale : mixed
- $twig : mixed
- $config : mixed
- $em : mixed
- $lastError : mixed
- $lastEvent : mixed
- $locale_orig : mixed
- $locales : mixed
- $requestStack : mixed
- $router : mixed
- $translator : mixed
- $transport : mixed
Methods
- __construct() : mixed
- addDest() : void
- Ajout de destinataires sur un message.
- attach() : void
- Ajout d'un fichier en pièce-jointe d'un message.
- batch() : int
- Préparation, composition puis envoi de messages pour chaque destinataire (méthode "combo").
- compose() : bool
- Composition du contenu textuel d'un message (rendu des vues Twig).
- composeSMS() : bool
- Composition du contenu SMS d'un message (rendu des vues Twig).
- embedBase64HtmlImages() : string
- Détection des images intégrées en base64 dans du contenu HTML pour extraction et conversion en attachements).
- getLastError() : string
- Retourne le message de la dernière erreur rencontrée (exception interceptée).
- getLastEvent() : int|Maillog
- Retourne l'entrée du journal correspondant au dernier envoi (uniquement son id par défaut).
- getLocales() : array<string|int, mixed>
- Retourne la liste des langues définies (gestion des messages multilingues).
- initLocale() : string
- Initialise la locale pour la génération des messages (auto ou forcé).
- logger() : int
- Enregistrement dans le journal des envois (envoyé avec succès ou échec d'une étape).
- logLastEvent() : MailerService
- Ajout dans une entité donnée de l'entrée du journal du dernier envoi (via méthode addMaillog ou addNotification).
- notify() : mixed
- Préparation, composition puis envoi d'un message PLAIN et/ou HTML (méthode "combo").
- notifySMS() : mixed
- Préparation, composition puis envoi d'un message SMS (méthode "combo").
- prepare() : Email
- Préparation d'un message à envoyer (objet Symfony Email & environnement Twig).
- restoreLocale() : void
- Réinitialise l'environnement avec la locale d'origine (auto ou forcé).
- send() : int
- Envoi un message préparé.
- setSender() : void
- Indique les informations de l'expéditeur sur un message.
- initTwig() : void
- Définition de l'environnement Twig (contenus des templates & ajout des extensions utiles).
Constants
ConfKeys
public
mixed
ConfKeys
= ['maillog', 'smsdomain', 'fromdomains', 'fromname', 'fromaddr', 'return', 'admins', 'locales', 'formats']
Properties
$locale
public
mixed
$locale
$twig
public
mixed
$twig
$config
protected
mixed
$config
$em
protected
mixed
$em
$lastError
protected
mixed
$lastError
$lastEvent
protected
mixed
$lastEvent
$locale_orig
protected
mixed
$locale_orig
$locales
protected
mixed
$locales
$requestStack
protected
mixed
$requestStack
$router
protected
mixed
$router
$translator
protected
mixed
$translator
$transport
protected
mixed
$transport
Methods
__construct()
public
__construct(EntityManagerInterface $em, TransportInterface $transport, RouterInterface $router, TranslatorInterface $translator, RequestStack $requestStack, array<string|int, mixed> $config) : mixed
Parameters
- $em : EntityManagerInterface
- $transport : TransportInterface
- $router : RouterInterface
- $translator : TranslatorInterface
- $requestStack : RequestStack
- $config : array<string|int, mixed>
addDest()
Ajout de destinataires sur un message.
public
addDest(Email &$message, array<string|int, mixed>|string $dest[, bool $bcc = false ][, bool $sms = false ]) : void
Parameters
- $message : Email
-
Instance du message (Symfony Email) auquel ajouter les destinataires
- $dest : array<string|int, mixed>|string
-
Liste d'adresses email (si chaine, virgule en séparateur)
- $bcc : bool = false
-
Ajout des destinataires en copie cachée (Bcc, sinon To)
- $sms : bool = false
-
Destinataires pour SMS (numéros de téléphone avec nom de domaine spécial)
Tags
attach()
Ajout d'un fichier en pièce-jointe d'un message.
public
attach(Email &$message, array<string|int, mixed>|string $pj) : void
Parameters
- $message : Email
-
Instance du message (Symfony Email) à compléter
- $pj : array<string|int, mixed>|string
-
Pièce-jointe (structure {'name':, 'type':, 'data':} ou simple chemin)
Tags
batch()
Préparation, composition puis envoi de messages pour chaque destinataire (méthode "combo").
public
batch(string $ref, string|array<string|int, mixed> $to[, array<string|int, mixed> $data = array() ][, string|array<string|int, mixed> $pjs = array() ]) : int
Parameters
- $ref : string
-
Référence du modèle de notification (cf tic_mail.templates dans services.yaml)
- $to : string|array<string|int, mixed>
-
Adresses mail des destinataires (chaine avec virgule en séparateur acceptée)
- $data : array<string|int, mixed> = array()
-
Liste clé/valeur pour les substitutions des templates
- $pjs : string|array<string|int, mixed> = array()
-
Pièces-jointes (chemin ou structure {'name':, 'type':, 'data':}, seul ou en liste)
Return values
int —Nombre de messages envoyés (succès sur destinataire) Null sur échec aux étapes "prepare" ou "compose"
compose()
Composition du contenu textuel d'un message (rendu des vues Twig).
public
compose(Email &$message[, array<string|int, mixed> $data = array() ][, string $ref = null ]) : bool
Parameters
- $message : Email
-
Instance du message (Symfony Email) à compléter
- $data : array<string|int, mixed> = array()
-
Liste clé/valeur pour les substitutions des templates
- $ref : string = null
-
Référence du modèle de notification (pour info dans les logs ; false pour désactiver les logs)
Tags
Return values
bool —Vrai en cas de succès, faux si une exception a été attrapée
composeSMS()
Composition du contenu SMS d'un message (rendu des vues Twig).
public
composeSMS(Email &$message[, array<string|int, mixed> $data = array() ][, string $ref = null ]) : bool
Parameters
- $message : Email
-
Instance du message (Symfony Email) à compléter
- $data : array<string|int, mixed> = array()
-
Liste clé/valeur pour les substitutions des templates
- $ref : string = null
-
Référence du modèle de notification (pour info dans les logs ; false pour désactiver les logs)
Return values
bool —Vrai en cas de succès, faux si une exception a été attrapée
embedBase64HtmlImages()
Détection des images intégrées en base64 dans du contenu HTML pour extraction et conversion en attachements).
public
embedBase64HtmlImages(Email &$message, string $html) : string
Parameters
- $message : Email
-
Instance du message (Symfony Email) à compléter
- $html : string
-
Contenu HTML à analyser pour traiter les images à extraire et attacher
Tags
Return values
string —Contenu HTML avec les tag modifiés (data base 64 => cid interne)
getLastError()
Retourne le message de la dernière erreur rencontrée (exception interceptée).
public
getLastError() : string
Return values
stringgetLastEvent()
Retourne l'entrée du journal correspondant au dernier envoi (uniquement son id par défaut).
public
getLastEvent([bool $retrieve_entity = null ]) : int|Maillog
Parameters
- $retrieve_entity : bool = null
Return values
int|Maillog —Clé primaire du Maillog, référence du Maillog ou objet Maillog
getLocales()
Retourne la liste des langues définies (gestion des messages multilingues).
public
getLocales() : array<string|int, mixed>
Note: les locales possibles sont utilisées dans l'admin, mais pas à l'envoi.
Return values
array<string|int, mixed> —Liste des locales possibles
initLocale()
Initialise la locale pour la génération des messages (auto ou forcé).
public
initLocale([string $locale = null ]) : string
Parameters
- $locale : string = null
-
Spécifie la locale à utiliser (optionnel)
Return values
string —Retourne la valeur de la locale configurée
logger()
Enregistrement dans le journal des envois (envoyé avec succès ou échec d'une étape).
public
logger(string $ref[, Email $message = null ][, int $rc = null ][, string $error = null ][, bool $sms = false ]) : int
Parameters
- $ref : string
-
Référence du modèle de notification (par défaut récupéré depuis les entêtes)
- $message : Email = null
-
Instance du message traité (Symfony Email)
- $rc : int = null
-
Nombre de destinataires si succès, code d'erreur négatif sur exception
- $error : string = null
-
Message de l'exception en cas d'erreur
- $sms : bool = false
-
Indique s'il s'agit d'un envoi par SMS plutôt que par SMTP
Return values
int —Identifiant de l'objet Maillog généré
logLastEvent()
Ajout dans une entité donnée de l'entrée du journal du dernier envoi (via méthode addMaillog ou addNotification).
public
logLastEvent(object &$entity) : MailerService
Parameters
- $entity : object
Return values
MailerServicenotify()
Préparation, composition puis envoi d'un message PLAIN et/ou HTML (méthode "combo").
public
notify(string $ref[, string|array<string|int, mixed> $to = array() ][, array<string|int, mixed> $data = array() ][, string|array<string|int, mixed> $pjs = array() ][, bool $return = false ][, string $sender = null ]) : mixed
Parameters
- $ref : string
-
Référence du modèle de notification (cf tic_mail.templates dans services.yaml)
- $to : string|array<string|int, mixed> = array()
-
Adresses mail des destinataires (chaine avec virgule en séparateur acceptée)
- $data : array<string|int, mixed> = array()
-
Liste clé/valeur pour les substitutions des templates (peut contenir 'locale')
- $pjs : string|array<string|int, mixed> = array()
-
Pièces-jointes (chemin ou structure {'name':, 'type':, 'data':}, seul ou en liste)
- $return : bool = false
-
Si vrai retournera l'objet Symfony Email au lieu de tenter de l'envoyer
- $sender : string = null
-
Adresse d'expéditeur (From, Reply-to ou Return-path selon $config['fromdomains'])
Return values
mixed —Nombre de destinaires du message envoyé (peut être 0) ou objet Email généré Null sur échec aux étapes "prepare" ou "compose" False sur échec à l'envoi par le Transport Mailer
notifySMS()
Préparation, composition puis envoi d'un message SMS (méthode "combo").
public
notifySMS(string $ref[, string|array<string|int, mixed> $to = array() ][, array<string|int, mixed> $data = array() ][, bool $return = false ]) : mixed
Parameters
- $ref : string
-
Référence du modèle de notification (cf tic_mail.templates dans services.yaml)
- $to : string|array<string|int, mixed> = array()
-
Adresses mail des destinataires (chaine avec virgule en séparateur acceptée)
- $data : array<string|int, mixed> = array()
-
Liste clé/valeur pour les substitutions des templates (peut contenir 'locale')
- $return : bool = false
-
Si vrai retournera l'objet Symfony Email au lieu de tenter de l'envoyer
Return values
mixed —Nombre de destinaires du message envoyé (peut être 0) ou objet Email généré Null sur échec aux étapes "prepare" ou "compose" False sur échec à l'envoi par le Transport Mailer
prepare()
Préparation d'un message à envoyer (objet Symfony Email & environnement Twig).
public
prepare(string $ref[, string|array<string|int, mixed> $to = array() ][, string|array<string|int, mixed> $pjs = array() ][, string $locale = null ][, bool $sms = false ]) : Email
Parameters
- $ref : string
-
Référence du modèle de notification (cf tic_mail.templates dans services.yaml)
- $to : string|array<string|int, mixed> = array()
-
Adresses mail des destinataires (chaine avec virgule en séparateur acceptée)
- $pjs : string|array<string|int, mixed> = array()
-
Pièces-jointes (chemin ou structure {'name':, 'type':, 'data':}, seul ou en liste)
- $locale : string = null
-
Spécifie la locale à utiliser (optionnel)
- $sms : bool = false
-
Indique s'il s'agit d'un envoi par SMS plutôt que par SMTP
Return values
Email —$message Instance du message (Symfony Email) initialisée selon le modèle de notification (ou null si aucun modèle de notification correspondant actif ou exception)
restoreLocale()
Réinitialise l'environnement avec la locale d'origine (auto ou forcé).
public
restoreLocale([string $locale = null ]) : void
Parameters
- $locale : string = null
-
Spécifie la locale à restaurer (optionnel)
send()
Envoi un message préparé.
public
send(Email &$message[, mixed $ref = null ][, bool $sms = false ]) : int
Parameters
- $message : Email
-
Instance du message (Symfony Email) à envoyer
- $ref : mixed = null
-
Référence du modèle de notification (pour info dans les logs) Null (défaut) pour la récupérer automatiquement d'après l'entête X-TIC-Template False pour désactiver les logs en cas de succès (mais toujours sur Exception)
- $sms : bool = false
-
Indique s'il s'agit d'un envoi par SMS plutôt que par SMTP
Tags
Return values
int —Nombre de destinataires ou -1 si exception du TransportMailer
setSender()
Indique les informations de l'expéditeur sur un message.
public
setSender(Email &$message, string $sender) : void
(adresse du "From:" et "Return-Path:" préservée si le domaine du $sender n'est pas dans $config['fromdomains'])
Parameters
- $message : Email
-
Instance du message (Symfony Email) auquel ajouter les destinataires
- $sender : string
-
Adresse de l'expéditeur à utiliser (peut contenir une partie "nom" devant)
initTwig()
Définition de l'environnement Twig (contenus des templates & ajout des extensions utiles).
protected
initTwig(array<string|int, mixed> $contents) : void
Parameters
- $contents : array<string|int, mixed>
-
Contenus des vues twig pour 'subject', 'bodyText', 'bodyHtml' et 'bodySms'