Overview
SHA1:0c01217ecfb3b381ae96c3e8de7a8368d11442ba
Date: 2018-07-24 22:37:49
User: bohwaz
Comment:Envoi d'email perso en utilisant l'adresse expéditrice forcée ou de l'asso, fix [e7539ae31f]
Timelines: family | ancestors | descendants | both | trunk | stable
Downloads: Tarball | ZIP archive
Other Links: files | file ages | folders | manifest
References
2018-07-24
22:38 • Fixed ticket [e7539ae31f]: Changer le From des mails envoyés lors d'un message à un utilisateur plus 5 other changes (user: bohwaz) [details]
Tags And Properties
Context
2018-07-27
12:41
[774d4cee5e] Corrige cotisations par durée affichées pas à jour, patch suggéré par @daniel (user: bohwaz, tags: trunk, stable)
2018-07-26
13:07
[fa50a20dd3] Ajout queue d'envoi d'emails (user: bohwaz, tags: dev)
2018-07-24
22:37
[0c01217ecf] Envoi d'email perso en utilisant l'adresse expéditrice forcée ou de l'asso, fix [e7539ae31f] (user: bohwaz, tags: trunk, stable)
12:53
[f7ca017b90] Correction: on accepte aussi la valeur 'TLS' pour la sécurité du SMTP (user: bohwaz, tags: trunk, stable)
Changes

Modified src/config.dist.php from [faf2942110] to [1f09233dd8].

225
226
227
228
229
230
231
232

233
234
235
236
237
238
239

//const SMTP_PASSWORD = 'abcd';

/**
 * Sécurité du serveur SMTP
 * 
 * NONE = pas de chiffrement
 * SSL = connexion SSL ou TLS native (le plus sécurisé)

 * STARTTLS = utilisation de STARTTLS (moyennement sécurisé)
 *
 * Défaut : STARTTLS
 */
const SMTP_SECURITY = 'STARTTLS';

/**







|
>







225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240

//const SMTP_PASSWORD = 'abcd';

/**
 * Sécurité du serveur SMTP
 * 
 * NONE = pas de chiffrement
 * SSL = connexion SSL native
 * TLS = connexion TLS native (le plus sécurisé)
 * STARTTLS = utilisation de STARTTLS (moyennement sécurisé)
 *
 * Défaut : STARTTLS
 */
const SMTP_SECURITY = 'STARTTLS';

/**

Modified src/include/lib/Garradin/Membres.php from [b6cfd55f6e] to [79cc6c1e41].

471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
...
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
    /**
     * @deprecated remplacer par envoyer message à tableau de membres
     */
    public function sendMessageToCategory($dest, $sujet, $message, $subscribed_only = false)
    {
        $config = Config::getInstance();

        $headers = [
            'From'  =>  '"'.$config->get('nom_asso').'" <'.$config->get('email_asso').'>',
        ];
        $message .= "\n\n--\n".$config->get('nom_asso')."\n".$config->get('site_asso');

        if ($dest == 0)
            $where = 'id_categorie NOT IN (SELECT id FROM membres_categories WHERE cacher = 1)';
        else
            $where = 'id_categorie = '.(int)$dest;

................................................................................
        $db = DB::getInstance();
        $res = $db->query('SELECT email FROM membres WHERE LENGTH(email) > 0 AND '.$where.' ORDER BY id;');

        $sujet = '['.$config->get('nom_asso').'] '.$sujet;

        while ($row = $res->fetchArray(SQLITE3_ASSOC))
        {
            Utils::mail($row['email'], $sujet, $message, $headers);
        }

        return true;
    }

    public function searchSQL($query)
    {







<
<
<







 







|







471
472
473
474
475
476
477



478
479
480
481
482
483
484
...
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
    /**
     * @deprecated remplacer par envoyer message à tableau de membres
     */
    public function sendMessageToCategory($dest, $sujet, $message, $subscribed_only = false)
    {
        $config = Config::getInstance();




        $message .= "\n\n--\n".$config->get('nom_asso')."\n".$config->get('site_asso');

        if ($dest == 0)
            $where = 'id_categorie NOT IN (SELECT id FROM membres_categories WHERE cacher = 1)';
        else
            $where = 'id_categorie = '.(int)$dest;

................................................................................
        $db = DB::getInstance();
        $res = $db->query('SELECT email FROM membres WHERE LENGTH(email) > 0 AND '.$where.' ORDER BY id;');

        $sujet = '['.$config->get('nom_asso').'] '.$sujet;

        while ($row = $res->fetchArray(SQLITE3_ASSOC))
        {
            Utils::mail($row['email'], $sujet, $message);
        }

        return true;
    }

    public function searchSQL($query)
    {

Modified src/include/lib/Garradin/Membres/Session.php from [8016f26bf2] to [de1cb46439].

284
285
286
287
288
289
290
291
292
293
294
295
296

297
298
299
300
301
302
303
		$out['qrcode'] = 'data:image/svg+xml;base64,' . base64_encode($qrcode->toSVG());

		return $out;
	}

	public function sendMessage($dest, $sujet, $message, $copie = false)
	{
		$from = $this->getUser();
		$from = $from->email;
		// Uniquement adresse email pour le moment car faudrait trouver comment
		// indiquer le nom mais qu'il soit correctement échappé FIXME

		$config = Config::getInstance();


		$message .= "\n\n--\nCe message a été envoyé par un membre de ".$config->get('nom_asso');
		$message .= ", merci de contacter ".$config->get('email_asso')." en cas d'abus.";

		if ($copie)
		{
			Utils::mail($from, $sujet, $message);







|
|
<
<

<
>







284
285
286
287
288
289
290
291
292


293

294
295
296
297
298
299
300
301
		$out['qrcode'] = 'data:image/svg+xml;base64,' . base64_encode($qrcode->toSVG());

		return $out;
	}

	public function sendMessage($dest, $sujet, $message, $copie = false)
	{
		$user = $this->getUser();
		$config = Config::getInstance();




		$from = sprintf('"%s" <%s>', sprintf('=?UTF-8?B?%s?=', base64_encode($user->identite)), FORCE_EMAIL_FROM ?: $config->get('email_asso'));

		$message .= "\n\n--\nCe message a été envoyé par un membre de ".$config->get('nom_asso');
		$message .= ", merci de contacter ".$config->get('email_asso')." en cas d'abus.";

		if ($copie)
		{
			Utils::mail($from, $sujet, $message);

Modified src/include/lib/Garradin/Utils.php from [e112042e84] to [e50ac2ace1].

382
383
384
385
386
387
388


389
390
391
392
393
394
395

396
397

398
399
400
401
402
403
404
        $content = trim($content);

        $content = preg_replace("#(?<!\r)\n#si", "\r\n", $content);
        $config = Config::getInstance();

        $headers['Return-Path'] = $config->get('email_asso');



        if (FORCE_EMAIL_FROM)
        {
            $headers['Reply-To'] = !empty($headers['From']) ? $headers['From'] : $config->get('email_asso');
            $headers['From'] = sprintf('"%s" <%s>', sprintf('=?UTF-8?B?%s?=', base64_encode($config->get('nom_asso'))), FORCE_EMAIL_FROM);
            $headers['Return-Path'] = FORCE_EMAIL_FROM;
        }
        elseif (empty($headers['From']))

        {
            $headers['From'] = sprintf('"%s" <%s>', sprintf('=?UTF-8?B?%s?=', base64_encode($config->get('nom_asso'))), $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());







>
>
|
|
|
|
|
|
<
>
|
|
>







382
383
384
385
386
387
388
389
390
391
392
393
394
395
396

397
398
399
400
401
402
403
404
405
406
407
        $content = trim($content);

        $content = preg_replace("#(?<!\r)\n#si", "\r\n", $content);
        $config = Config::getInstance();

        $headers['Return-Path'] = $config->get('email_asso');

        if (empty($headers['From']))
        {
            if (FORCE_EMAIL_FROM)
            {
                $headers['Reply-To'] = !empty($headers['From']) ? $headers['From'] : $config->get('email_asso');
                $headers['From'] = sprintf('"%s" <%s>', sprintf('=?UTF-8?B?%s?=', base64_encode($config->get('nom_asso'))), FORCE_EMAIL_FROM);
                $headers['Return-Path'] = FORCE_EMAIL_FROM;
            }

            else
            {
                $headers['From'] = sprintf('"%s" <%s>', sprintf('=?UTF-8?B?%s?=', base64_encode($config->get('nom_asso'))), $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());