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. |