Skip to content
Snippets Groups Projects
Select Git revision
  • release/8.0-perimetres
  • master default protected
  • php84
  • detached3
  • 6.x
  • 7.x
  • detached2
  • detached
  • php82
  • 5.x
  • cherry-pick-bf3b5271
  • v5.x-test
  • laminas_migration
  • 7.2.5
  • 7.2.4
  • 7.2.3
  • 7.2.2
  • 7.2.1
  • 7.2.0
  • 7.1.3
  • 7.1.2
  • 7.1.1
  • 7.1.0
  • 7.0.1
  • 7.0.0
  • 6.1.11
  • 6.1.10
  • 6.1.9
  • 6.1.8
  • 6.1.7
  • 6.1.6
  • 6.1.5
  • 6.1.4
33 results

mail

  • Clone with SSH
  • Clone with HTTPS
  • 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.