Module Unicaen Mail
Description
Le module unicaen/mail est en charge de l'envoi et du stockage des courriers électroniques.
Le module fournit un menu dans Administration > Mail permettant d'accéder au listing des mails et des actions liés à ceux-ci.
Description du fonctionnement
Les mails
Mail sont stocké en base avec les informations suivantes :
- destinataire (redirection ou pas)
- date d'envoi
- status
- sujet/corps
- mots clefs
Mail service est en chage de faire l'envoi et l'enregistrement en base.
Exemple d'utilisation sans utilisation d'un template
$mail = $this->getMailService()->sendMail('john.doe@aol.com', 'Reunion importante', 'Bonjour nous avons ...');
Exemple d'utilisation avec utilisation d'un template + entité liée
$rendu = $this->getRenduService()->generateRenduByTemplateCode('MON TEMPLATE', ['VAR1' => $var1, 'VAR2' => $var2, ...]);
$mail = $this->getMailService()->sendMail('john.doe@aol.com', $rendu->getSujet(), $rendu->getCorps());
$mail->addMotsClefs(['MON_ENTITE', 'MON_TEMPLATE']);
$this->getMailService()->update($mail);
Aides de vue founies
'view_helpers' => [
'invokables' => [
'mail' => MailViewHelper::class,
'mails' => MailsViewHelper::class,
],
],
$this->mail($monMails)
: Affiche un mail généré avec description à gauche et texte générée à droite.
$this->mails($monTableauDeMails)
: Affiche une table avec un ligne par mail et founi les actions associées.
Attention !!! l'aide mails
peut recevoir un tableau permettant de bricoler les droits des actions.
Configuration
La configuration local à fournir est disponible dans [mail/config/unicaen-mail.local.php.dist]
<?php
/**
* Configuration locale du module UnicaenMail.
*/
return [
'unicaen-mail' => [
/**
* Classe de entité
**/
'mail_entity_class' => Mail::class,
/**
* Options concernant l'envoi de mail par l'application
*/
'transport_options' => [
'host' => 'smtp.XXXX.fr',
'port' => 25,
],
/**
* Adresses des redirection si do_not_send est à true
*/
'redirect_to' => ['john-doe@mail.fr', ],
'do_not_send' => true,
/**
* Configuration de l'expéditeur
*/
'subject_prefix' => '[Mon App]',
'from_name' => 'Mon application',
'from_email' => 'ne-pas-repondre@mail.fr'
],
];
Tables pour les données du modules
N.B. Le script permettant de créer les tables est fourni dans le fichier [mail/SQL/001_tables.sql]
unicaen_mail_mail : table stockant les mails
Column | Type | Obligatoire | Unique | Description |
---|---|---|---|---|
id | int | true | true | identifiant numerique de la macro |
date_envoi | timestamp | true | false | date de l'envoi du mail |
status_envoi | varchar(256) | true | false | Statut "indicatif" de l'envoi : FAILED, SUCCESS, PENDING |
destinataires | text | true | false | chaines de caractères concaténant les adresse des destinataires |
destinataires_initials | text | false | false | Null si le mail n'as pas été redirigé. Sinon chaines de caractères concaténant les adresse des destinataires initiaux du mail |
sujet | text | false | false | sujet du mail |
corps | text | false | false | corps du mail |
mots_clefs | text | false | false | Champ libre permettant d'associer des mots clés aux mails (ie. id d'une entité, mots clés de recherche ...) |
log | text | false | false | Log du mail |
Privilèges associés au module
N.B. Le script permettant de créer les tables est fourni dans le fichier [mail/SQL/002_privileges.sql]
const MAIL_INDEX = 'mail-mail_index';
const MAIL_AFFICHER = 'mail-mail_afficher';
const MAIL_TEST = 'mail-mail_test';
const MAIL_REENVOI = 'mail-mail_reenvoi';
const MAIL_SUPPRIMER = 'mail-mail_supprimer';
Attention !!! Penser à donner les privilèges aux rôles adéquats.