Anomalie #2066
Le conteneur ne peut pas envoyer de mail
Description
Il n'est pas possible d'envoyer des mails depuis le conteneur web (notamment depuis l'interface web).
Aujourd'hui exim est installé dans le conteneur web, il faut ajouter une dépendance sur ssmtp sur eole-web.
Modification du template 20_mail.xml (à l'époque container_only n'existait pas, donc on templatisait a chaque fois même si ce n'est pas nécessaire) :
--- /root/20_mail.xml 2011-09-15 22:35:33.826875570 +0200 +++ /usr/share/eole/creole/dicos/20_mail.xml 2011-09-15 22:37:13.504885423 +0200 @@ -12,7 +12,7 @@ <file filelist='sympa' name='/usr/share/ead2/backend/config/actions/actions_mail.cfg' rm='True'/> <file filelist='sympa' name='/usr/share/eole/firewall/00_mail_sympa.fw' rm='True'/> <!-- configuration de ssmtp pour le mode conteneur --> - <file name='/etc/ssmtp/ssmtp.conf' mkdir='True'/> + <file name='/etc/ssmtp/ssmtp.conf' container_only='True'/> <file name='/etc/bacula/baculafichiers.d/mail.conf' source='bacula-mail.conf'/> </files> <containers>
Modification du template 20_web.xml :
--- /root/20_web.xml 2011-09-15 22:35:50.646862781 +0200 +++ /usr/share/eole/creole/dicos/20_web.xml 2011-09-15 22:51:32.906944264 +0200 @@ -18,6 +18,8 @@ <!-- remonter des logs vers la maitre --> <file name='/etc/rsyslog.d/50-default.conf' source="50-default-conteneur.conf" container_only="True"/> <file filelist='ssoclient' name='/usr/share/php/configCAS/cas.inc.php' source='cas.inc.php.tmpl' mkdir='True'/> + <file name='/etc/ssmtp/ssmtp.conf' container_only='True'/> + <file name='/usr/share/eole/firewall/00_web.fw' container_only='True'/> </container> </containers>
Nouveau template 00_web_mail.fw :
%if %%is_defined('container_ip_mail') allow_dest(interface='eth0', container='mail', port='25') %else %if %%tls_smtp == 'port 465' allow_dest(interface='eth0', ip='%%passerelle_smtp', port='465') %else allow_dest(interface='eth0', ip='%%passerelle_smtp', port='25') %end if %end if
Cela doit fonctionner avec eole-mail et eole-ssmtp.
Demandes liées
Révisions associées
corrections pour autoriser l'envoi de mails depuis le conteneur web (fixes #2066)
tmpl/00_mail.fw : autoriser le conteneur reseau à sortir sur TCP/25 ou
TCP/465 si tls smtp activé vers passerelle smtp
fixes #2066 @10m
Historique
#1 Mis à jour par Emmanuel GARETTE (2) il y a plus de 12 ans
Il n'est pas possible de mettre un dépendance sur ssmtp à cause du mode non conteneur. Il faudrait peut être ajouter "container_only" dans la balise "package" d'un dictionnaire.
#2 Mis à jour par Emmanuel GARETTE (2) il y a plus de 12 ans
Bizarrement je n'ai pas mis le patch pour ssmtp.conf :
--- /root/distrib/ssmtp.conf 2011-08-17 15:32:28.000000000 +0200 +++ ssmtp.conf 2011-09-21 11:16:59.000000000 +0200 @@ -12,11 +12,15 @@ #Mailhub # The host to send mail to, in the form host port | IP_addr port [: port]. # The default port is 25. +%if %%is_defined('container_ip_mail') +Mailhub=%%container_ip_mail +%else %if %%tls_smtp == 'port 465' Mailhub=%%passerelle_smtp:465 %else Mailhub=%%passerelle_smtp %end if +%end if #UseTLS # Specifies whether ssmtp uses TLS to talk to the SMTP server.
#3 Mis à jour par Joël Cuissinat il y a plus de 12 ans
- Version cible mis à Mises à jour 2.3 - 02 RC
#4 Mis à jour par Joël Cuissinat il y a plus de 12 ans
modification du ssmtp.conf : http://dev-eole.ac-dijon.fr/projects/eole-common/repository/revisions/7c14b54c67ecb53958b41da5938b5c82d544a006
#5 Mis à jour par Joël Cuissinat il y a plus de 12 ans
- Statut changé de Nouveau à Résolu
- % réalisé changé de 0 à 100
Appliqué par commit commit:"45fee8820a75357230a1faf005ca36ad427452ca"
#6 Mis à jour par Joël Cuissinat il y a plus de 12 ans
- % réalisé changé de 100 à 80
Pour moi, il reste le problème de comment on dit au conteneur web d'installer ssmtp OU mail-pkg (exim) !
#7 Mis à jour par Joël Cuissinat il y a plus de 12 ans
- Version cible changé de Mises à jour 2.3 - 02 RC à Mises à jour 2.2.3 - 03 RC
#8 Mis à jour par Joël Cuissinat il y a plus de 12 ans
- Version cible changé de Mises à jour 2.2.3 - 03 RC à Mises à jour 2.3 - 03 RC
#9 Mis à jour par Joël Cuissinat il y a plus de 12 ans
- Statut changé de Résolu à En attente d'informations
- Version cible changé de Mises à jour 2.3 - 03 RC à Mises à jour 2.3.4 RC
- Distribution mis à EOLE 2.3
#10 Mis à jour par Joël Cuissinat il y a environ 12 ans
- Projet changé de conf-scribe à eole-exim
#11 Mis à jour par Daniel Dehennin il y a environ 12 ans
eole-common
: Dependseole-exim
pour installer les dicos/templateseolebase-conteneur
:Depends
ssmtp-pkg|mail-pkg
: pour installer le paquetssmtp-pkg
par défaut mais permettre son remplacement parexim-pkg
dans le conteneur mail
Le projet eole-ssmtp
devient donc inutile, il ne reste que son template à transvaser dans eole-exim
et s’assurer qu’il sera installer dans tous les conteneurs.
#12 Mis à jour par Daniel Dehennin il y a environ 12 ans
eole-common
doit aussi avoir une dépendance sur ssmtp-pkg|mail-pkg
pour le mode non conteneur
#13 Mis à jour par Daniel Dehennin il y a environ 12 ans
- Version cible changé de Mises à jour 2.3.4 RC à Mises à jour 2.3.5 RC
#14 Mis à jour par Bruno Boiget il y a presque 12 ans
2.3.5 RC
Pour tenter de résumer :
- ssmtp.conf est livré par eole-exim (port en dur) ou eole-ssmtp (template avec configuration du port) suivant les dépendances du module.
- le dictionnaire fourni par eole-web envoie ce template dans le conteneur web et met en place une règle vers le conteneur mail si nécessaire
- Il y a une dépendance sur eole-ssmtp | eole-mail dans eolebase-minimal
Le paquet ssmtp n'est pas installé dans le conteneur (seulement le fichier de conf)
A voir avec la configuration du serveur smtp de php.ini ? cf. demande #3610
#15 Mis à jour par Bruno Boiget il y a presque 12 ans
- Version cible changé de Mises à jour 2.3.5 RC à Mises à jour 2.3.6 RC
#16 Mis à jour par Joël Cuissinat il y a plus de 11 ans
- Version cible changé de Mises à jour 2.3.6 RC à Mises à jour 2.3.7 RC
J'ai réglé l'affaire uniquement pour le conteneur web en ajoutant la fameuse dépendance scribe-pkg:commit:37dd9074 uniquement dans web-pkg.
#17 Mis à jour par Joël Cuissinat il y a plus de 11 ans
- Statut changé de En attente d'informations à Résolu
- % réalisé changé de 80 à 100
Appliqué par commit conf-scribe:45fee8820a75357230a1faf005ca36ad427452ca.
#18 Mis à jour par Joël Cuissinat il y a plus de 11 ans
- Statut changé de Résolu à À valider
- % réalisé changé de 100 à 80
Mon fix semble correspondre au cas horus-conteneur (ie : eole-web sans eole-mail, ssmtp envoie directement le mail vers la passerelle académique).
Dans le cas AmonEcole (eole-web + eole-mail), les mails sont bien passés à Exim (nb : dans ce cadre les règles ajoutées ne sont pas utiles car les deux se retrouvent dans le groupe de conteneur reseau), mais c'est Exim (le conteneur mail), lui-même qui ne peut pas sortir !
Je propose donc d'ajouter les lignes suivantes dans 00_mail.fw :
# envoi des mails vers la passerelle SMTP %if %%tls_smtp == 'port 465' allow_dest(interface='eth0', ip='%%passerelle_smtp', port='465') %else allow_dest(interface='eth0', ip='%%passerelle_smtp', port='25') %end if
#19 Mis à jour par Fabrice Barconnière il y a plus de 11 ans
- Version cible changé de Mises à jour 2.3.7 RC à Mises à jour 2.3.7 Stable
#20 Mis à jour par Fabrice Barconnière il y a plus de 11 ans
- Statut changé de À valider à Résolu
- % réalisé changé de 80 à 100
Appliqué par commit 9a8920ba505b47c9fcb6b7e00b1fa8c96ae1ac86.
#21 Mis à jour par Fabrice Barconnière il y a plus de 11 ans
- Statut changé de Résolu à Fermé