Project

General

Profile

Configuration des mails » History » Version 12

Simon, 06/16/2024 04:25 PM

1 4 Simon
h1. Configuration du système d'envoi d'emails
2 1 Simon
3 11 Simon
L'envoi d'emails par l'application repose sur la librairie PHP "SwiftMailer":http://swiftmailer.org jusqu'à la version 2.6.x.
4 1 Simon
5 11 Simon
Depuis la version 2.7, l'envoi d'email repose sur la librairie "symfony/mailer":https://github.com/symfony/mailer.
6
7
Il est possible de prolonger l'utilisation de 'swiftMailer' en ajoutant la constante optionnelle *MAIL_LIBRARY == 'swiftMailer'* à votre fichier config.ini.
8
9
De manière générale, référez-vous à la documentation relative aux constantes Linea21, section "Paramétrage de l’envoi d’emails : mail_settings":https://dev.linea21.com/projects/linea21/wiki/ConstantesLinea21#Param%C3%A9trage-de-lenvoi-demails-mail_settings.
10
11 6 Simon
h2. Sendmail, configuration par défaut
12 1 Simon
13 11 Simon
14 6 Simon
Par défaut, l'application est configurée pour envoyer les messages avec _sendmail_. 
15 4 Simon
16 6 Simon
<pre>
17
<code class="php">
18
[MAIL_SETTINGS]
19
20
MAIL_SENDMAIL 		= "/usr/sbin/sendmail -t -i"
21
MAIL_PORT 		= 25
22
MAIL_MAILER 		= "sendmail"
23
</code>
24
</pre>
25
26 1 Simon
27 6 Simon
h2. Utiliser un serveur SMTP
28 1 Simon
29 11 Simon
*MAIL_MAILER* prend la valeur _'smtp'_. Indiquez l'adresse du serveur via *MAIL_HOST*. 
30 6 Simon
31 11 Simon
25 est le port par défaut. Le port peut être changé, notamment pour sécuriser les envois via SSL (587, 465 ou 2525).
32
33 6 Simon
h3. en mode non-authentifié
34
35
<pre>
36
<code class="php">
37
[MAIL_SETTINGS]
38
39
MAIL_PORT 		= 25
40
MAIL_MAILER 		= "smtp"
41
MAIL_HOST 		= "your.smtp.net"
42
MAIL_SMTP_AUTH 		= 0
43
MAIL_SMTP_USER 		= ""
44
MAIL_SMTP_PASS 		= ""
45
</code>
46
</pre>
47
48
h3. en mode authentifié
49
50
<pre>
51
<code class="php">
52
[MAIL_SETTINGS]
53
54
MAIL_PORT 		= 25
55
MAIL_MAILER 		= "smtp"
56
MAIL_HOST 		= "your.smtp.net"
57
MAIL_SMTP_AUTH 		= 1
58
MAIL_SMTP_USER 		= "utilisateur"
59
MAIL_SMTP_PASS 		= "motdepasse"
60
</code>
61 1 Simon
</pre>
62
63
*Important : En cas d'envoi via smtp en mode authentifié, assurez vous que les constantes MAIL_FROM et MAIL_REPLY, définies dans la section [MAIL_INFORMATIONS] aient la même valeur que MAIL_SMTP_USER !*
64
65 11 Simon
h3. Encryption 
66
67
L'utilisation d'un SMTP encrypté est autorisée et même recommandée.
68 1 Simon
69 12 Simon
Si vous utilisez une version de Linea21 > 2.7 (reposant sur la librairie symfony/mailer par défaut), l'encryption est utilisée par défaut.
70 1 Simon
71 12 Simon
L'ajout de la constante MAIL_SMTP_ENCRYPTION à votre fichier de configuration forcera la "vérification du paire TLS":https://symfony.com/doc/5.x/mailer.html#tls-peer-verification désactivée par défaut par Linea21.
72 11 Simon
73 12 Simon
Aujourd'hui, la version 5.4.21 de symfony/mailer est utilisée. "A partir de la version 7.1, il sera possible de désactiver TLS":https://symfony.com/doc/current/mailer.html#disabling-automatic-tls.
74
75
Si vous utilisez une version de Linea21 < 2.7 ou avez fait le choix explicite de poursuivre en utilisant 'swiftMailer', il vous suffit d'ajouter la constante MAIL_SMTP_ENCRYPTION à votre fichier de configuration en spécifiant la valeur 'tls' ou 'ssl' suivant les prérequis du serveur SMTP. "Voir la documentation de swiftMailer":https://swiftmailer.symfony.com/docs/sending.html#encrypted-smtp.
76 7 Simon
77
78 8 Simon
h2. Choisir un envoi différé
79
80
81
Il est possible de configurer l'envoi différé d'email de masse. Pour cela remplacez la valeur de MAIL_BULK par défaut paramétrée à 'nodelay' par un entier. Cet entier désigne le nombre d'emails à traiter par lot. Veillez à ce que la valeur soit compatible avec les limitations imposées par votre hébergeur Web, le cas échéant.
82
83
<pre>
84
<code class="php">
85
[MAIL_SETTINGS]
86
87
MAIL_BULK	= 200
88
</code>
89
</pre>
90
91
Par défaut, le script d'envoi différé est exécuté chaque 10 minutes. Si ce rythme ne vous convient pas vous pouvez modifier son comportement en vous référent à la "documentation de référence":http://dev.linea21.com/projects/linea21/wiki/CronJobs#Localisation-des-Cronjobs.
92
93 7 Simon
h2. Utiliser la fonction PHP native _mail()_
94
95
Bien que l'application utilise par défaut SwiftMailer, il est possible d'envoyer les emails directement via la fonction native PHP _email()_.
96 9 Simon
Pour cela il suffit de préciser à MAIL_MAILER une valeur qui n'est ni `smtp` ni `sendmail`. Pour des questions de lisibilité, nous vous invitons à choisir une valeur explicite telle que `PHP`, `mail`, `php_mail`, ...
97 1 Simon
98 9 Simon
*Attention : cette option n'est plus disponible en version 2.6, en raison d'une mise à jour de la librairire SwiftMailer qui a supprimé cette possibilité pour des raisons de sécurité.*
99 6 Simon
100 4 Simon
h2. Sur un hébergement Free.fr
101
102
103
Free est gratuit mais certains paramétrages y sont spécifiques.
104
105
Par conséquent, *MAIL_MAILER* doit prendre la valeur "*mail*"
106
107
<pre>
108 6 Simon
<code class="php">
109 1 Simon
[MAIL_SETTINGS]
110
MAIL_USE_SSL       = 0
111
MAIL_SENDMAIL       = "/usr/sbin/sendmail -t -i"
112
MAIL_MAILER_SSL       =  0
113
MAIL_HOST_SSL       =  0
114
MAIL_PORT_SSL       = 465
115
MAIL_MAILER       = "mail"
116
MAIL_HOST       = 0
117
MAIL_SMTP_AUTH       = 0
118
MAIL_SMTP_USER       =  0
119
MAIL_SMTP_PASS       =  0
120 6 Simon
</code>
121 4 Simon
</pre>
122 3 Simon
123
124 4 Simon
_Remarque_ : Free.fr ajoute des entêtes spécifiques - et exotiques (XPARM / XPARAM2) au message envoyé via la fonction PHP _mail()_ (la seule disponible).
125
*Nous avons constaté que certains serveurs de mail refusaient les messages contenant ces entêtes.* 
126 3 Simon
127 4 Simon
_Linea21 n'est pas responsable de ce désagrément_. Choisissez un hébergement de type professionnel si vos exigences sont professionnelles.