Project

General

Profile

Configuration des mails » History » Revision 11

Revision 10 (Simon, 06/16/2024 03:48 PM) → Revision 11/12 (Simon, 06/16/2024 04:17 PM)

h1. Configuration du système d'envoi d'emails 

 L'envoi d'emails par l'application repose sur la librairie PHP "SwiftMailer":http://swiftmailer.org jusqu'à la version 2.6.x. SwiftMailer [[http://swiftmailer.org]]. 

 Depuis la version 2.7, l'envoi d'email repose sur la librairie "symfony/mailer":https://github.com/symfony/mailer. 

 Il est possible de prolonger l'utilisation de 'swiftMailer' en ajoutant la constante optionnelle *MAIL_LIBRARY == 'swiftMailer'* à votre fichier config.ini. 

 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. 

 h2. Sendmail, configuration par défaut 


 

 Par défaut, l'application est configurée pour envoyer les messages avec _sendmail_.  

 <pre> 
 <code class="php"> 
 [MAIL_SETTINGS] 

 MAIL_SENDMAIL  		 = "/usr/sbin/sendmail -t -i" 
 MAIL_PORT  		 = 25 
 MAIL_MAILER  		 = "sendmail" 
 </code> 
 </pre> 


 



 h2. Utiliser un serveur SMTP 

 *MAIL_MAILER* prend la valeur _'smtp'_. Indiquez l'adresse du serveur via *MAIL_HOST*.  

 25 Le port peut être changé (_25_ est le port par défaut. Le port peut être changé, notamment pour sécuriser les envois via SSL (587, 465 ou 2525). défaut). 

 h3. en mode non-authentifié 

 <pre> 
 <code class="php"> 
 [MAIL_SETTINGS] 

 MAIL_PORT  		 = 25 
 MAIL_MAILER  		 = "smtp" 
 MAIL_HOST  		 = "your.smtp.net" 
 MAIL_SMTP_AUTH  		 = 0 
 MAIL_SMTP_USER  		 = "" 
 MAIL_SMTP_PASS  		 = "" 
 </code> 
 </pre> 

 

 h3. en mode authentifié 

 <pre> 
 <code class="php"> 
 [MAIL_SETTINGS] 

 MAIL_PORT  		 = 25 
 MAIL_MAILER  		 = "smtp" 
 MAIL_HOST  		 = "your.smtp.net" 
 MAIL_SMTP_AUTH  		 = 1 
 MAIL_SMTP_USER  		 = "utilisateur" 
 MAIL_SMTP_PASS  		 = "motdepasse" 
 </code> 
 </pre> 

 *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 !* 


 h3. Encryption  

 L'utilisation d'un SMTP encrypté est autorisée et même recommandée. 

 Si vous utilisez une version de Linea21 > 2.7 (reposant sur la librairie symfony/mailer par défaut), il vous suffit d'ajouter la constante MAIL_SMTP_ENCRYPTION à votre fichier de configuration avec n'importe quelle valeur (ex _MAIL_SMTP_ENCRYPTION = 1_ ). "La librairie se chargera du reste":https://symfony.com/doc/current/mailer.html#disabling-automatic-tls. 

 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. 

 Pour l'activer, il suffit d'ajouter la constante dédiée à votre fichier de configuration :  


 



 h2. Choisir un envoi différé 


 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. 

 <pre> 
 <code class="php"> 
 [MAIL_SETTINGS] 

 MAIL_BULK 	 = 200 
 </code> 
 </pre> 

 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. 

 

 h2. Utiliser la fonction PHP native _mail()_ 

 Bien que l'application utilise par défaut SwiftMailer, il est possible d'envoyer les emails directement via la fonction native PHP _email()_. 
 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`, ... 

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

 

 h2. Sur un hébergement Free.fr 


 Free est gratuit mais certains paramétrages y sont spécifiques. 

 Par conséquent, *MAIL_MAILER* doit prendre la valeur "*mail*" 

 <pre> 
 <code class="php"> 
 [MAIL_SETTINGS] 
 MAIL_USE_SSL         = 0 
 MAIL_SENDMAIL         = "/usr/sbin/sendmail -t -i" 
 MAIL_MAILER_SSL         =    0 
 MAIL_HOST_SSL         =    0 
 MAIL_PORT_SSL         = 465 
 MAIL_MAILER         = "mail" 
 MAIL_HOST         = 0 
 MAIL_SMTP_AUTH         = 0 
 MAIL_SMTP_USER         =    0 
 MAIL_SMTP_PASS         =    0 
 </code> 
 </pre> 


 _Remarque_ : Free.fr ajoute des entêtes spécifiques - et exotiques (XPARM / XPARAM2) au message envoyé via la fonction PHP _mail()_ (la seule disponible). 
 *Nous avons constaté que certains serveurs de mail refusaient les messages contenant ces entêtes.*  

 _Linea21 n'est pas responsable de ce désagrément_. Choisissez un hébergement de type professionnel si vos exigences sont professionnelles.