Saltar al contenido

Envíe un correo electrónico para probar el contenedor docker con php y sendmail

Haz todo lo posible por entender el código de forma correcta antes de utilizarlo a tu proyecto y si ttienes algo que aportar puedes dejarlo en la sección de comentarios.

Solución:

Funciona.

En Dockerfile:

# sendmail config
############################################

RUN apt-get install -q -y ssmtp mailutils

# root is the person who gets all mail for userids < 1000
RUN echo "[email protected]" >> /etc/ssmtp/ssmtp.conf

# Here is the gmail configuration (or change it to your private smtp server)
RUN echo "mailhub=smtp.gmail.com:587" >> /etc/ssmtp/ssmtp.conf
RUN echo "[email protected]" >> /etc/ssmtp/ssmtp.conf
RUN echo "AuthPass=yourGmailPass" >> /etc/ssmtp/ssmtp.conf

RUN echo "UseTLS=YES" >> /etc/ssmtp/ssmtp.conf
RUN echo "UseSTARTTLS=YES" >> /etc/ssmtp/ssmtp.conf


# Set up php sendmail config
RUN echo "sendmail_path=sendmail -i -t" >> /usr/local/etc/php/conf.d/php-sendmail.ini

Para probar dentro del contenedor php sendmail:

echo "Un message de test" | mail -s "sujet de test" [email protected]

Tengo éxito con la ayuda de estos dos documentos:

  • https://unix.stackexchange.com/questions/36982/can-i-set-up-system-mail-to-use-an-external-smtp-server
  • https://github.com/cmaessen/docker-php-sendmail/blob/master/Dockerfile

Si dice:

“El paquete ‘ssmtp’ no tiene ningún candidato de instalación”

Puedes usar msmtp en lugar de.

Agregue lo siguiente a su dockerfile

# sendmail config
#################
ARG SMTP_PASSWORD=not_provided
# install
RUN apt-get install -q -y msmtp mailutils
# config
COPY msmtprc /etc/msmtprc
RUN chmod 600 /etc/msmtprc
RUN chown www-data:www-data /etc/msmtprc
ARG SMTP_PASSWORD=not_provided
RUN sed -i "s|YourAwesomeStr0ngP4zzw0rd|$SMTP_PASSWORD|g" /etc/msmtprc
# Set up php sendmail config
RUN echo "sendmail_path=/usr/bin/msmtp -t" >> /etc/php/7.3/apache2/conf.d/php-sendmail.ini

Agrega un msmtprc archivo a su contexto de compilación de ventana acoplable:

account default
host mail.yoursmtpserver.com
port 587
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
tls_certcheck on
auth on
user [email protected]
password "YourAwesomeStr0ngP4zzw0rd"
from "[email protected]"
logfile /var/log/msmtp.log

nota: se realizaron algunos cambios para que funcione con mi configuración particular (ramificación FROM eboraas/apache-php). Esto se aplica particularmente a las líneas:

  • ARG SMTP_PASSWORD=no_proporcionado
  • EJECUTE chown www-data:www-data /etc/msmtprc
  • EJECUTE sed -i “s|SuAwesomeStr0ngP4zzw0rd|$SMTP_PASSWORD |g” /etc/msmtprc
  • EJECUTAR echo “sendmail_path=/usr/bin/msmtp -t” >> /etc/php/7.3/apache2/conf.d/php-sendmail.ini

Es posible que deba adaptar rutas, contraseñas, etc. para que se ajusten a sus necesidades. Tenga en cuenta para establecer el SMTP_PASSWORD construir un argumento a partir del entorno (p. ej. SMTP_PASSWORD= docker-compose build) si desea utilizar esta solución de inmediato.

Recursos útiles:

  • https://wiki.debian.org/msmtp
  • https://owendavies.net/articles/setting-up-msmtp/
  • https://wiki.archlinux.org/index.php/msmtp#Send_mail_with_PHP_using_msmtp
  • La configuración de linux msmtp se envía desde el shell pero falla desde PHP/Apache

valoraciones y reseñas

Puedes añadir valor a nuestro contenido informacional colaborando tu experiencia en las notas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *