Overview
Comment: | Indiquer le contexte d'envoi des emails |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
f55dfbd38e689e411bf93cd9b812b339 |
User & Date: | bohwaz on 2018-10-02 16:01:27 |
Other Links: | branch diff | manifest | tags |
Context
2018-10-03
| ||
11:34 | Uniformisation des actions en bas des listes de membres check-in: ec3640ce30 user: bohwaz tags: dev | |
2018-10-02
| ||
16:01 | Indiquer le contexte d'envoi des emails check-in: f55dfbd38e user: bohwaz tags: dev | |
15:55 | Préparation à ajouter des actions pour les listes de membres check-in: a87b08c0b9 user: bohwaz tags: dev | |
Changes
Modified src/include/lib/Garradin/Membres/Session.php from [f12dc2b07a] to [641c204780].
︙ | ︙ | |||
191 192 193 194 195 196 197 | $query = sprintf('%s.%s.%s', $id, $expire, $hash); $message = "Bonjour,\n\nVous avez oublié votre mot de passe ? Pas de panique !\n\n"; $message.= "Il vous suffit de cliquer sur le lien ci-dessous pour recevoir un nouveau mot de passe.\n\n"; $message.= ADMIN_URL . 'password.php?c=' . $query; $message.= "\n\nSi vous n'avez pas demandé à recevoir ce message, ignorez-le, votre mot de passe restera inchangé."; | | | 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 | $query = sprintf('%s.%s.%s', $id, $expire, $hash); $message = "Bonjour,\n\nVous avez oublié votre mot de passe ? Pas de panique !\n\n"; $message.= "Il vous suffit de cliquer sur le lien ci-dessous pour recevoir un nouveau mot de passe.\n\n"; $message.= ADMIN_URL . 'password.php?c=' . $query; $message.= "\n\nSi vous n'avez pas demandé à recevoir ce message, ignorez-le, votre mot de passe restera inchangé."; return Utils::sendEmail(Utils::EMAIL_CONTEXT_SYSTEM, $membre->email, 'Mot de passe perdu ?', $message, $membre->id, $membre->clef_pgp); } static public function recoverPasswordConfirm($code) { if (substr_count($code, '.') !== 2) { return false; |
︙ | ︙ | |||
242 243 244 245 246 247 248 | $message.= "Votre nouveau mot de passe : ".$password."\n\n"; $message.= "Si vous n'avez pas demandé à recevoir ce message, merci de nous le signaler."; $password = Membres::hashPassword($password); $db->update('membres', ['passe' => $password], 'id = :id', ['id' => (int)$id]); | | | 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 | $message.= "Votre nouveau mot de passe : ".$password."\n\n"; $message.= "Si vous n'avez pas demandé à recevoir ce message, merci de nous le signaler."; $password = Membres::hashPassword($password); $db->update('membres', ['passe' => $password], 'id = :id', ['id' => (int)$id]); return Utils::sendEmail(Utils::EMAIL_CONTEXT_SYSTEM, $membre->email, 'Nouveau mot de passe', $message, $membre->id, $membre->clef_pgp); } public function editUser($data) { (new Membres)->edit($this->user->id, $data, false); $this->refresh(); |
︙ | ︙ | |||
295 296 297 298 299 300 301 | $content = "Ce message vous a été envoyé par :\n"; $content.= sprintf("%s\n%s\n\n", $user->identite, $user->email); $content.= str_repeat('=', 70) . "\n\n"; $content.= $message; if ($copie) { | | | | 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 | $content = "Ce message vous a été envoyé par :\n"; $content.= sprintf("%s\n%s\n\n", $user->identite, $user->email); $content.= str_repeat('=', 70) . "\n\n"; $content.= $message; if ($copie) { Utils::sendEmail(Utils::EMAIL_CONTEXT_PRIVATE, $user->email, $sujet, $content, $user->id); } return Utils::sendEmail(Utils::EMAIL_CONTEXT_PRIVATE, $dest, $sujet, $content); } public function editSecurity(Array $data = []) { $allowed_fields = ['passe', 'clef_pgp', 'secret_otp']; foreach ($data as $key=>$value) |
︙ | ︙ |
Modified src/include/lib/Garradin/Rappels_Envoyes.php from [7f341d0949] to [fcaa354186].
︙ | ︙ | |||
146 147 148 149 150 151 152 | $replace['nb_jours'] = abs($replace['nb_jours']); $replace['delai'] = abs($replace['delai']); $subject = $this->replaceTagsInContent($data->sujet, $replace); $text = $this->replaceTagsInContent($data->texte, $replace); // Envoi du mail | | | 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | $replace['nb_jours'] = abs($replace['nb_jours']); $replace['delai'] = abs($replace['delai']); $subject = $this->replaceTagsInContent($data->sujet, $replace); $text = $this->replaceTagsInContent($data->texte, $replace); // Envoi du mail Utils::sendEmail(Utils::EMAIL_CONTEXT_PRIVATE, $data->email, $subject, $text, $data->id); // Enregistrement en DB $this->add([ 'id_cotisation' => $data->id_cotisation, 'id_membre' => $data->id, 'id_rappel' => $data->id_rappel, 'media' => Rappels_Envoyes::MEDIA_EMAIL, |
︙ | ︙ |
Modified src/include/lib/Garradin/Utils.php from [ced173fcb5] to [68bab2cb49].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php namespace Garradin; use KD2\Security; use KD2\Form; use KD2\Translate; use KD2\SMTP; use KD2\ODSWriter; class Utils { static protected $skriv = null; static private $french_date_names = [ 'January'=>'Janvier', 'February'=>'Février', 'March'=>'Mars', 'April'=>'Avril', 'May'=>'Mai', 'June'=>'Juin', 'July'=>'Juillet', 'August'=>'Août', 'September'=>'Septembre', 'October'=>'Octobre', 'November'=>'Novembre', 'December'=>'Décembre', 'Monday'=>'Lundi', 'Tuesday'=>'Mardi', 'Wednesday'=>'Mercredi', 'Thursday'=>'Jeudi','Friday'=>'Vendredi','Saturday'=>'Samedi','Sunday'=>'Dimanche', | > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php namespace Garradin; use KD2\Security; use KD2\Form; use KD2\Translate; use KD2\SMTP; use KD2\ODSWriter; class Utils { const EMAIL_CONTEXT_BULK = 'bulk'; const EMAIL_CONTEXT_PRIVATE = 'private'; const EMAIL_CONTEXT_SYSTEM = 'system'; static protected $skriv = null; static private $french_date_names = [ 'January'=>'Janvier', 'February'=>'Février', 'March'=>'Mars', 'April'=>'Avril', 'May'=>'Mai', 'June'=>'Juin', 'July'=>'Juillet', 'August'=>'Août', 'September'=>'Septembre', 'October'=>'Octobre', 'November'=>'Novembre', 'December'=>'Décembre', 'Monday'=>'Lundi', 'Tuesday'=>'Mardi', 'Wednesday'=>'Mercredi', 'Thursday'=>'Jeudi','Friday'=>'Vendredi','Saturday'=>'Samedi','Sunday'=>'Dimanche', |
︙ | ︙ | |||
727 728 729 730 731 732 733 | } $ods->output(); return true; } | | | | | | 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 | } $ods->output(); return true; } static public function sendEmail($context, $recipient, $subject, $content, $id_membre = null, $pgp_key = null) { // Ne pas envoyer de mail à des adresses invalides if (!SMTP::checkEmailIsValid($recipient, false)) { throw new UserException('Adresse email invalide: ' . $recipient); } $config = Config::getInstance(); $subject = sprintf('[%s] %s', $config->get('nom_asso'), $subject); // Tentative d'envoi du message en utilisant un plugin $email_sent_via_plugin = Plugin::fireSignal('email.envoi', compact('context', 'recipient', 'subject', 'content', 'id_membre', 'pgp_key')); if (!$email_sent_via_plugin) { // L'envoi d'email n'a pas été effectué par un plugin, utilisons l'envoi interne // via mail() ou SMTP donc return self::mail($context, $recipient, $subject, $content, $id_membre, $pgp_key); } return true; } static public function mail($context, $to, $subject, $content, $id_membre, $pgp_key) { $headers = []; $config = Config::getInstance(); $content = wordwrap($content); $content = trim($content); |
︙ | ︙ | |||
775 776 777 778 779 780 781 782 783 784 785 786 787 788 | } $headers['From'] = sprintf('"%s" <%s>', sprintf('=?UTF-8?B?%s?=', base64_encode($config->get('nom_asso'))), $config->get('email_asso')); $headers['Return-Path'] = $config->get('email_asso'); $headers['MIME-Version'] = '1.0'; $headers['Content-type'] = 'text/plain; charset=UTF-8'; $hash = sha1(uniqid() . var_export([$headers, $to, $subject, $content], true)); $headers['Message-ID'] = sprintf('%s@%s', $hash, isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : gethostname()); if (SMTP_HOST) { $const = '\KD2\SMTP::' . strtoupper(SMTP_SECURITY); | > > > > > | 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 | } $headers['From'] = sprintf('"%s" <%s>', sprintf('=?UTF-8?B?%s?=', base64_encode($config->get('nom_asso'))), $config->get('email_asso')); $headers['Return-Path'] = $config->get('email_asso'); $headers['MIME-Version'] = '1.0'; $headers['Content-type'] = 'text/plain; charset=UTF-8'; if ($contexte == self::EMAIL_CONTEXT_BULK) { $headers['Precedence'] = 'bulk'; } $hash = sha1(uniqid() . var_export([$headers, $to, $subject, $content], true)); $headers['Message-ID'] = sprintf('%s@%s', $hash, isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : gethostname()); if (SMTP_HOST) { $const = '\KD2\SMTP::' . strtoupper(SMTP_SECURITY); |
︙ | ︙ |