Commit 3a5d8fab authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Ajout de copie

parent 8b5ac852
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ date_envoi timestamp not null,
status_envoi varchar(256) not null,
destinataires text not null,
destinataires_initials text,
copies text,
sujet text,
corps text,
mots_clefs text,
+12 −11
Original line number Diff line number Diff line
@@ -110,12 +110,13 @@ Tables pour les données du modules
**unicaen_mail_mail** : table stockant les mails

| Column                 | Type | Obligatoire | Unique | Description                                                                                                                 |
|---|---|---|---|---|
|------------------------|---|---|---|-----------------------------------------------------------------------------------------------------------------------------|
| id                     | int | true | true | identifiant numerique du mail                                                                                               |
| 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 | chaîne de caractères concaténant les adresses des destinataires                                                             |
| destinataires_initials | text | false | false | Null si le mail n'as pas été redirigé. Sinon chaînes de caractères concaténant les adresse des destinataires initiaux du mail|
| destinataires_initials | text | false | false | Null si le mail n'a pas été redirigé. Sinon chaînes de caractères concaténant les adresse des destinataires initiaux du mail |
| copies                 | text | false | false | Null si le mail n'a pas de destinataire en copie                                                                            |
| 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 clefs aux mails (ie. id d'une entité, mots clés de recherche ...)                |
+11 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ class Mail {
    private ?int $id = null;
    private ?string $destinataires = null;
    private ?string $destinatairesInitials = null;
    private ?string $copies = null;

    /** Contenu *******************************************************************************************************/

@@ -72,6 +73,16 @@ class Mail {
        $this->destinatairesInitials = $destinatairesInitials;
    }

    public function getCopies(): ?string
    {
        return $this->copies;
    }

    public function setCopies(?string $copies): void
    {
        $this->copies = $copies;
    }
    
    public function isRedirection() : bool
    {
        return $this->destinatairesInitials !== null;
+1 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@
        <field name="statusEnvoi"           type="string"   length="256"      column="status_envoi"         nullable="false"  />
        <field name="destinataires"         type="string"   length="256"      column="destinataires"        nullable="false"  />
        <field name="destinatairesInitials" type="string"   length="256"      column="destinataires_initials" nullable="true"  />
        <field name="copies"                type="text"                       column="copies"               nullable="true"  />
        <field name="sujet"                 type="string"   length="9999"     column="sujet"                nullable="true"  />
        <field name="corps"                 type="string"   length="9999"     column="corps"                nullable="true"  />
        <field name="motsClefs"             type="string"   length="9999"     column="mots_clefs"           nullable="true" />
+12 −1
Original line number Diff line number Diff line
@@ -161,7 +161,7 @@ class MailService {
        return $value;
    }

    public function sendMail($to, $subject, $texte, ?string $module = null, $attachement_path = null) : ?Mail
    public function sendMail($to, $subject, $texte, ?string $module = null, $attachement_path = null, $copie = null) : ?Mail
    {
        try {
            $fromEmail = $this->fetchValueFromConfig('from_email', $module);
@@ -182,6 +182,9 @@ class MailService {
        if (is_string($to)) $to=explode(',', $to);
        if (!is_array($to)) $to = [$to];

        if (is_string($copie)) $copie=explode(',', $copie);
        if (!is_array($copie)) $copie = [$copie];

        /** @var Mail $mail */
        $mail = $this->createMailEntity();
        $mail->setDateEnvoi(new DateTime());
@@ -193,6 +196,7 @@ class MailService {
        } else {
            $mail->setDestinataires(implode(",",$to));
        }
        $mail->setCopies(implode(",", $copie));
        $mail->setSujet($subject);


@@ -208,6 +212,7 @@ class MailService {
            foreach ($redirectTo as $e) $message->addTo($e);
        } else {
            foreach ($to as $e) $message->addTo($e);
            foreach ($copie as $e) $message->addCc($e);
        }
        $message->setSubject($sujet);
        $texte = "<p><i>Ce courrier électronique vous a été adressé <strong>automatiquement</strong> par l'application ".$subjectPrefix.". </i></p>" . $texte;
@@ -220,6 +225,12 @@ class MailService {
            $texte .= "<ul>";
            foreach (explode(",",$mail->getDestinatairesInitials()) as $t) $texte .= "<li>" . $t . "</li>";
            $texte .= "</ul>";
            if ($copie !== null && !empty($copie)) {
                $texte .= "Copie à :";
                $texte .= "<ul>";
                foreach ($copie as $e) $texte .= "<li>".$e."</li>";
                $texte .= "</ul>";
            }
        }

        $parts = [];
Loading