Sf TIC Bundles

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

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
see
https://symfony.com/doc/current/mailer.html#email-addresses

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
see
https://symfony.com/doc/current/mailer.html#file-attachments

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
see
https://symfony.com/doc/current/mailer.html#message-contents
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
see
https://symfony.com/doc/current/mailer.html#embedding-images
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
string

getLastEvent()

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
MailerService

notify()

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
see
https://symfony.com/doc/current/mailer.html#debugging-emails
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'

Tags
TODO

transformations/adaptations dans les contenus des templates ?


        
On this page

Search results