Closed krptg0 closed 3 weeks ago
C'est la fonction mail
de php
qui est utilisée pour envoyer des mails. Cette fonction appelle la commande sendmail
.
sendmail
n'est as configuré dans l'image docker qui est fournie.
J'ai trouvé ceci pour la configuration de sendmail dans une image docker :
FROM php:7-fpm
RUN apt-get update && \
apt-get install -y \
zlib1g-dev libzip-dev sendmail
RUN echo "sendmail_path=/usr/sbin/sendmail -t -i" >> /usr/local/etc/php/conf.d/sendmail.ini
RUN docker-php-ext-install pdo_mysql
RUN docker-php-ext-install zip
RUN sed -i '/#!\/bin\/sh/aservice sendmail restart' /usr/local/bin/docker-php-entrypoint
RUN sed -i '/#!\/bin\/sh/aecho "$(hostname -i)\t$(hostname) $(hostname).localhost" >> /etc/hosts' /usr/local/bin/docker-php-entrypoint
# And clean up the image
RUN rm -rf /var/lib/apt/lists/*
Impossible d'utiliser cette méthode, il n'y a pas de systemd ou de sysvinit dans le container qui pourrait faire vivre le service sendmail.
Je me pose toutefois la question : https://github.com/dbarzin/mercator/blob/77c6be13053f3187e8cae812ac79fb5b6f648d4e/config/mail.php#L16
Dans ce fichier de conf on voit bien que par défaut la lib mailer est censée utiliser SMTP directement, sendmail n'est qu'une autre méthode à activer manuellement. J'ai bien passé l'env MAIL_MAILER=smtp mais ceci ne change rien.
Ce fichier de configuration est un fichier de configuration standard qui vient de Laravel. Il n'est pas utilisé dans Mercator.
C'est la fonction mail
de PHP qui est utilisée pour envoyer des mails. Cette fonction appelle la commande sendmail
.
sendmail
n'est as configuré dans l'image Docker qui est fournie.
Le plus simple pour corriger ce qui se passe est de lancer sendmail
en ligne de commande dans le Docker.
Entendu, mais ça paraît sacrément compliqué de faire fonctionner sendmail dans Docker. Je vais quand même y jeter un oeil. Possible pour toi de faire en sorte d'utiliser le mailer laravel ? Merci.
Cela me semble simple pourtant : https://r.je/sendmail-php-docker
L'utilisation du mail dans Laravel m'avait semblé fort compliqué : https://laravel.com/docs/11.x/mail
Nous allons passer à PHPMail pour améliorer l'envoi de mails depuis Mercator. Ce sera disponible rapidement.
C'est disponoble !
Bonjour,
Lors du déploiement de mercator, nous avons setté les variables d'env MAIL* afin de correspondre à notre setup.
Cela dit, lorsqu'un test de mail est réalisé depuis la page "CVE" bouton "Test Mail", l'erreur suivante apparaît dans les logs :
mercator-75c7b45b54-rknwr:mercator sendmail: Cannot open mail:25
La seule référence trouvée de "mail" est dans le fichier /etc/ssmtp/ssmtp.conf, qui contient la config par défaut pour sendmail. Cela fait sens, mais cela explique également que la librairie mailer utilisée ne semble pas reprendre les variables et les interpréter pour ensuite appeler sendmail.
Merci d'avance,
PS: nous utilisons l'image Docker sans modifications