Overview
Comment: | Fix problèmes d'envoi de mails |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
4f308662d1e3177907c1b649477aef00 |
User & Date: | bohwaz on 2017-09-08 01:48:11 |
Other Links: | branch diff | manifest | tags |
Context
2017-09-08
| ||
02:02 | Modernisation : dernières corrections check-in: 45f55bea0b user: bohwaz tags: dev | |
01:48 | Fix problèmes d'envoi de mails check-in: 4f308662d1 user: bohwaz tags: dev | |
2017-09-07
| ||
07:24 | Implémentation envoi de mail chiffré PGP check-in: 567f9ab5d9 user: bohwaz tags: dev | |
Changes
Modified src/include/lib/Garradin/Membres/Session.php from [9a1ca990e6] to [92bf6c6d59].
︙ | ︙ | |||
167 168 169 170 171 172 173 | $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.= WWW_URL . 'admin/password.php?c=' . $query; $message.= "\n\nSi vous n'avez pas demandé à recevoir ce message, ignorez-le, votre mot de passe restera inchangé."; | | | 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | $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.= WWW_URL . 'admin/password.php?c=' . $query; $message.= "\n\nSi vous n'avez pas demandé à recevoir ce message, ignorez-le, votre mot de passe restera inchangé."; Utils::mail($membre->email, '['.$config->get('nom_asso').'] Mot de passe perdu ?', $message, [], $membre->clef_pgp); return true; } static public function recoverPasswordConfirm($code) { if (substr_count($code, '.') !== 2) { |
︙ | ︙ | |||
219 220 221 222 223 224 225 | $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]); | | | 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 | $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::mail($membre->email, '['.$config->get('nom_asso').'] Nouveau mot de passe', $message, [], $membre->clef_pgp); } public function editUser($data) { (new Membres)->edit($this->user->id, $data, false); $this->refresh(); |
︙ | ︙ |
Modified src/include/lib/Garradin/Utils.php from [9c877cfda5] to [f7e16abdb3].
︙ | ︙ | |||
138 139 140 141 142 143 144 | if (is_array($qs)) { $uri .= '?' . http_build_query($qs); } return WWW_URL . $uri; } | < < < < < < < < | 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | if (is_array($qs)) { $uri .= '?' . http_build_query($qs); } return WWW_URL . $uri; } public static function redirect($destination=false, $exit=true) { if (empty($destination) || !preg_match('/^https?:\/\//', $destination)) { if (empty($destination)) $destination = WWW_URL; |
︙ | ︙ | |||
404 405 406 407 408 409 410 | $str = preg_replace('/<em>(\V*?)<\/em>/', '\'\'$1\'\'', $str); $str = preg_replace('/<li>(\V*?)<\/li>/', '* $1', $str); $str = preg_replace('/<ul>|<\/ul>/', '', $str); $str = preg_replace('/<a href="([^"]*?)">(\V*?)<\/a>/', '[[$2 | $1]]', $str); return $str; } | | | | | 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 | $str = preg_replace('/<em>(\V*?)<\/em>/', '\'\'$1\'\'', $str); $str = preg_replace('/<li>(\V*?)<\/li>/', '* $1', $str); $str = preg_replace('/<ul>|<\/ul>/', '', $str); $str = preg_replace('/<a href="([^"]*?)">(\V*?)<\/a>/', '[[$2 | $1]]', $str); return $str; } static public function mail($to, $subject, $content, array $headers = [], $pgp_key = null) { // Création du contenu du message $content = wordwrap($content); $content = trim($content); $content = preg_replace("#(?<!\r)\n#si", "\r\n", $content); $config = Config::getInstance(); if (empty($headers['From'])) { $headers['From'] = sprintf('"%s" <%s>', $config->get('nom_asso'), $config->get('email_envoi_automatique')); } $headers['MIME-Version'] = '1.0'; $headers['Content-type'] = 'text/plain; charset=UTF-8'; $headers['Return-Path'] = $config->get('email_envoi_automatique'); $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 ($pgp_key) { $content = Security::encryptWithPublicKey($pgp_key, $content); } |
︙ | ︙ | |||
469 470 471 472 473 474 475 | else { // Encodage du sujet $subject = sprintf('=?UTF-8?B?%s?=', base64_encode($subject)); $raw_headers = ''; // Sérialisation des entêtes | | | 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 | else { // Encodage du sujet $subject = sprintf('=?UTF-8?B?%s?=', base64_encode($subject)); $raw_headers = ''; // Sérialisation des entêtes foreach ($headers as $name=>$value) { $raw_headers .= sprintf("%s: %s\r\n", $name, $value); } return mail($to, $subject, $content, $raw_headers); } } |
︙ | ︙ |