Estimados, teníamos configurado el envío de mails con una cuenta cuyo servidor tenia la siguiente configuración:
puerto:25
seguridad: ninguna
requiere autenticación: si
Este servidor cambio su seguridad y le tuvimos que dejar la siguiente configuración:
puerto:465
seguridad: tls
requiere autenticación: si
Y el test de conexión dejo de funcionar.
Y si lo dejamos como lo teniamos, pasa el test pero no nos deja mandar los e-mails.
La consulta es que archivos puedo ver ademas de esta operación, para ver porque no funciona?
Gracias por compartirnos con consulta. Sólo para aclarar, con la configuración del nuevo servidor les es posible enviar mails, a pesar de que no salga el de prueba de conexión?
Lo esperable sería que si el mail de prueba se envía correctamente, los mails a usuarios también. En caso de no salir el mail de prueba, sería indicativo que algún parámetro de la configuración no estaría siendo el idóneo (quizás ‘Seguridad’, suele utilizarse SSL).
Ok. Probemos lo siguiente. Usualmente al configurar un nuevo servidor para envío de mails suele ser necesario deshabilitar IPv6 del mismo, para evitar que el mismo tome dicha dirección del servicio SMTP de Google (en caso de que estén utilizando el servicio de Gmail).
Prueben cambiar esa configuración, a ver qué tal responde. Al menos momentáneamente. Quizás haya que verificar mejor la configuración de la red interna en la cual se encuentra el servidor. Puede que haya alguna cuestión de firewall o seguridad que esté bloqueando el servicio de envío de mails del servidor nuevo que están utilizando.
Buen día Fernando,
no tuvimos más respuesta de ese usuario que mencionas, ni en el foro ni en el gds que abrimos, por lo tanto no se decirte qué pasaba, suponemos que lo resolvieron por su cuenta.
Con respecto a tu situación, repasemos: cuando lo configuran con los nuevos datos del servidor, que el test deja de funcionar ¿qué mensajes de error te deja? revisá por favor los logs de kolla y de apache para ver si algo ayuda a detectar el motivo por el que falla. ¿Se aseguraron que el servidor acepta que hagan envíos desde otros clientes? Este es un error habitual.
Otra cosa; comentaste que al volver a los datos viejos el test les da ok, esto no debería ser así: si ahora el servidor pide seguridad, no debería poder hacer la prueba de conexión y resolverla de manera exitosa sin los datos necesarios para autentificarse. Por favor revisen el estado del servidor, asegúrense de que la configuración de seguridad está activa y que aún así permite envíos desde otros clientes. Si todo esto está ok, prueben configurando Kolla y envianos los logs de cuando falla el test.
Buen día Estimados!
Siguiendo con este tema, revisamos los logs de php y no nos dan mucha información. Revisamos la configuración del servidor de correos y no entendemos porque la misma no funciona para kolla y si para otros sistemas que tenemos en producción.
Ante esto probamos modificar el código del archivo:
/var/pas/kolla/aplicacion/vendor/siu-toba/framework/php/nucleo/lib/toba_mail.php
Ahí agreguemos la librería que utilizamos para enviar mails (comentando el código del siu para probar). De esta manera funciona, por lo que creemos que el problema es de la librería que utiliza el Kolla, que algún problema tiene con la configuración de correo nuestra, pero no sabemos bien cual es el problema porque da poca info cuando tira el error.
Los logs de Kolla, en que directorio se encuentran?
Adjunto archivo toba_mail.php modificado.
Fernando,
el log de Kolla está en la carpeta /instalacion/i__produccion/p__kolla/logs. El log de apache probablemente lo tengan en /var/log/apache2
Con respecto a la modificación que hicieron: no es código de Kolla lo que han cambiado sino del framework Toba. Y lo que veo es que han agregado la configuración de la cuenta pero lo que comentaron de toba es bastante más que eso. En la configuración que hardcodearon no han especificado el puerto, ¿puede ser que entonces no sea el puerto 465 que estaban configurando en Kolla el que está usando efectivamente al conectarse? Al no tener toda la información completa no puedo saber si hay otras diferencias.
Fernando,
lo que se me ocurre que podes hacer es intentar recuperar logs más detallados del error de la siguiente manera: en el archivo aplicacion/php/operaciones/configuracion/servidores_smtp/ci_servidores_smtp.php agregá la siguiente línea al comienzo de la clase,
use PHPMailer\PHPMailer\PHPMailer\PHPMailerException;
y cambiá la clase del error toba_error por phpmailerException en el catch de esta función, así:
function evt__form__test_conexion($datos)
{
.........................
try {
$mail->enviar();
toba::notificacion()->info('La prueba de conexión fue satisfactoria.');
}
catch (phpmailerException $e) {
toba::notificacion()->agregar($e->getMessage());
throw new toba_error('La prueba de conexión no tuvo éxito.');
}
}
Para ver si obtenes un error un poco más específico que te pueda orientar.
Saludos
Buen día Estimados.
Retomando este problema, lo pudimos solucionar de la siguiente manera:
Reemplazamos las clases class.phpmailer.php y class.smtp.php por las clases que adjunto y que corresponden a la versión 5.2.27.
Reemplazando las misma pudimos configurar el envío de mails con autenticación y seguridad SSL. Cabe aclarar que en la clase class.phpmailer.php incluimos un include que llama a la clase class.smtp.php ya que no la encontraba.
También les consulto como podemos hacer para que este cambio sea permanente.
Buenos días Fernando,
pueden conservar el cambio de librería pero no va a perdurar después de que hagan actualizaciones del módulo. De todas maneras en las versiones más nuevas de Kolla esa librería también se actualiza.
Como siempre les recomendamos mantener las versiones actualizadas ya que estamos constantemente haciendo revisiones y mejoras en las distintas operaciones de Kolla.
Saludos.