Buenas noches, recientemente instalamos Guarani Autogestion 3.18.1 y Preinscripcion 3.11.0 en un Linux Debian Buster, y notamos que no funciona el envío de mail.
Resulta que el paquete ssmtp que usamos en versiones anteriores de Linux ya no está disponible para esta nueva versión de Linux ya que quedó en desuso según vimos en internet.
Cabe señalar que el paquete libphp-phpmailer está instalado en su versión mas reciente (6.0.6-0.1).
Queríamos saber que paquete podemos instalar para que funcione. Nosotros enviamos mails desde la aplicación conectándonos a smtp.gmail.com configurado en el config.php
En internet se sugiere reemplazar ssmtp por postfix, ver: https://servidordebian.org/es/buster/email/smtp/postfix_relay
Desde ya muchas gracias
Saludos
Hola Alberto,
En Guaraní utilizamos la librería phpmailer/phpmailer para el envío de emails, Guaraní 3.18.1 salio con la versión v6.1.6 de phpmailer/phpmailer, esto lo podes ver en el archivo composer.lock.
Preguntas:
-
¿tenes bien configuradas las directivas dentro de smtp en el archivo instalacion/config.php?
-
¿te da algún error en los logs a la hora de enviar un email desde Guaraní?
-
¿para que están usando ssmtp y libphp-phpmailer?
saludos.
2
Hola Leonel, logramos hacer funcionar Postfix para enviar mails desde phpmailer. No soy experto en el tema así que lo explico como lo entendimos.
En secreto está en lo siguiente, luego de instalar Postfix en forma standard:
- Configurar el archivo main.cf de Postfix correctamente donde se configura el acceso al Gmail con la cuenta y clave correspondiente
myhostname = NOMBRE_SERVIDOR
mydestination = $myhostname, NOMBRE_SERVIDOR, localhost.DOMINIO, , localhost
relayhost = [smtp.gmail.com]:465
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_use_tls = yes
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated
mynetworks = 127.0.0.0/8, 127.0.0.0/8 [::1]/128 DIRECCION_IP_SERVIDOR/32
El usuario y clave de Gmail se configura en /etc/postfix/sasl_passwd.
Esta configuración protege al servidor de posible spam, haciendo que solo acepte mails desde el servidor local, y luego se redireccionen al gmail. Eso si, para esta configuración, preinscripción debe estar en el mismo servidor donde corre el Postfix.
-
Crear un usuario Linux para envío de mails.
-
Configurar el config.php de preinscripcion para que el envío del mail se realice con el usuario Linux al puerto 25 del localhost. La seguridad es del usuario Linux.
‘smtp’ => array(
‘from_name’ => ‘UNIV XXXXX - Preinscripciones’,
‘from’ => ‘usuario_linux@NOMBRE_SERVIDOR’,
‘host’ => ‘localhost’,
‘seguridad’ => ‘’,
‘auth’ => false,
‘port’ => 25,
‘reply_to’ => ‘preinscripcion@xxxxx.edu.ar’,
‘usuario’ => ‘usuario_linux’,
‘clave’ => ‘xxxxxxxxxxxxxxxxxxxx’,
‘ssl’ => array(
‘verify_peer’ => false,
‘verify_peer_name’ => false,
‘allow_self_signed’ => true
)
),
De esta manera, todo mail enviado al localhost:25 se enviará al gmail.
Fuentes de información:
https://juncotic.com/postfix-usando-gmail-relay-smtp/
https://servidordebian.org/es/buster/email/smtp/postfix
https://servidordebian.org/es/buster/email/smtp/postfix_relay
https://medium.com/20ms/configuring-ssl-tls-for-postfix-5c87cb54aa89
https://www.enmimaquinafunciona.com/pregunta/15528/agregar-cuenta-de-correo-en-postfix
https://blyx.com/public/docs/postfix/Guia_postfix.pdf
http://postfix.1071664.n5.nabble.com/reject-unauth-destination-status-2-should-be-0-td10313.html
https://serverfault.com/questions/42519/how-to-correct-postfix-relay-access-denied
https://devops.ionos.com/tutorials/configure-a-postfix-relay-through-gmail-on-ubuntu/
Espero se entienda.
Saludos
Hola Alberto,
Me alegro que lo hayan podido solucionar!!!
Por lo que entendí lo que ustedes hacen es configurar todo local, y luego los envíos de email lo hacen desde localhost (que este finalmente usa el SMTP de Google).
Gracias por el aporte!!!
saludos.
2