Bug en reenvío de contraseña [1.8.8.4]

Moderator: jarturomora

Bug en reenvío de contraseña [1.8.8.4]

Postby eneko » Fri Sep 09, 2011 7:03 pm

Hola a todos.
Espero que este mensaje le sirva a quien, como yo, haya estado preocupado por la configuración de las funciones de correo electrónico en la versión 1.8.8.4., y más concretamente los mensajes de reenvío de contraseña.

En otro post (http://www.chamilo.org/forum/viewtopic.php?f=15&t=1513&hilit=smtp) se explica muy bien que el archivo en el que se configura el correo saliente está en /main/inc/conf/mail.conf.php

La configuración que me ha funcionado en un servidor linux ha sido:
Code: Select all
$platform_email['SMTP_FROM_EMAIL']   = (isset($administrator['email'])?$administrator['email']:'admin@example.com');
$platform_email['SMTP_FROM_NAME']    = (isset($administrator['name'])?$administrator['name']:'John Doe');
$platform_email['SMTP_HOST']         = 'mail.psicologiadeportiva.net';
$platform_email['SMTP_PORT']         = 587;
// $platform_email['SMTP_MAILER']       = IS_WINDOWS_OS ? 'smtp' : 'mail'; // mail, sendmail or smtp
$platform_email['SMTP_MAILER']       = 'smtp'; // mail, sendmail or smtp
$platform_email['SMTP_AUTH']         = 1; // Default: 0
$platform_email['SMTP_USER']         = 'user@server';
$platform_email['SMTP_PASS']         = 'password';
$platform_email['SMTP_CHARSET']      = api_get_system_encoding();

Hay que tener en cuenta que mi servidor no usaba el puerto habitual, por lo que he cambiado ese parámetro a 587. También he forzado el valor de SMTP_MAILER a 'smtp' para evitar que se utilizase la función mail() de php por defecto.

Tras configurarlo de esta forma los mensajes de los administradores a los usuarios, así como los mensajes entre usuarios envían una notificación por email (dependiendo de cómo esté configurada la plataforma, claro).

A partir de ahí, lo más complicado ha sido encontrar la razón por la que no se enviaban los mensajes de recuperación de contraseñas. Tras múltiples pruebas, he encontrado que la función api_mail es la que se encarga de enviar estos emails, que se encuentra en /main/inc/lib/mail.lib.inc.php
En la línea 33 aparece:
Code: Select all
   if (api_valid_email($recipient_email)) {
      return 0;
   }

de este modo se solicita que se compruebe mediante otra función si la dirección a la que hay que enviar el email es válida. Como esta función devuelve el mismo email que se le pasa, es un error interrumpir la función api_mail cuando el email es válido. Por tanto, hay que interrumpirla cuando ocurra lo contrario:
Code: Select all
if ((api_valid_email($recipient_email)) == false) {
      return 0;
   }

Yo he cambiado el código de arriba por el de abajo y ya se realizan correctamente todos los reenvíos de contraseñas.

Espero que a alguien más le sirvan las horas que he perdido en esto.
Un saludo.
eneko
 
Posts: 19
Joined: Wed Feb 02, 2011 11:48 am

Re: Bug en reenvío de contraseña [1.8.8.4]

Postby edwin.huertas » Tue Sep 13, 2011 3:53 pm

Muchas gracias, también tenia el mismo problema, ya lo solucione con tu ayuda!!
nuevamente gracias!!!!
edwin.huertas
 
Posts: 6
Joined: Tue Apr 13, 2010 6:51 pm

Re: Bug en reenvío de contraseña [1.8.8.4]

Postby eneko » Tue Sep 13, 2011 10:41 pm

Hola Edwin.
Me alegro mucho de que te haya servido esta solución.
Un saludo.
eneko
 
Posts: 19
Joined: Wed Feb 02, 2011 11:48 am

Re: Bug en reenvío de contraseña [1.8.8.4]

Postby pereira.ricardo » Thu Apr 12, 2012 2:26 pm

GRACIAS!!!!! A mi tambien me sirvio esta solucion.
pereira.ricardo
 
Posts: 4
Joined: Wed Apr 11, 2012 2:13 pm

Re: Bug en reenvío de contraseña [1.8.8.4]

Postby sherazbutts » Fri Jun 08, 2012 2:32 pm

Gracias por dar. Creo que es absolutamente increíble y uno de los mejores blogs que he visto. Su breve artículo es realmente asombroso. trendsandgadgets.net
sherazbutts
 
Posts: 1
Joined: Fri Jun 08, 2012 2:23 pm

Re: Bug en reenvío de contraseña [1.8.8.4]

Postby mcastells » Mon Jun 11, 2012 7:32 pm

Tenía el mismo problema, he seguido tus recomendaciones y funciona!
Mil gracias por compartir la solución!
mcastells
 
Posts: 1
Joined: Mon Jun 11, 2012 7:25 pm

Re: Bug en reenvío de contraseña [1.8.8.4]

Postby rcamaster » Wed Jun 20, 2012 9:55 pm

yo hice lo primero que dices pero al hacer lo segundo


En la línea 33 aparece:
CODE: SELECT ALL
if (api_valid_email($recipient_email)) {
return 0;
}

de este modo se solicita que se compruebe mediante otra función si la dirección a la que hay que enviar el email es válida. Como esta función devuelve el mismo email que se le pasa, es un error interrumpir la función api_mail cuando el email es válido. Por tanto, hay que interrumpirla cuando ocurra lo contrario:
CODE: SELECT ALL
if ((api_valid_email($recipient_email)) == false) {
return 0;
}



se me muere el sitio, entonces solo agregue el diferencia de la linea 33 según este código.


http://support.chamilo.org/projects/cha ... ib.inc.php

suerte!
rcamaster
 
Posts: 15
Joined: Fri Mar 18, 2011 12:30 am


Return to Spanish

Who is online

Users browsing this forum: No registered users and 3 guests

Bug en reenvío de contraseña [1.8.8.4]

Moderator: jarturomora

Bug en reenvío de contraseña [1.8.8.4]

Postby eneko » Fri Sep 09, 2011 7:03 pm

Hola a todos.
Espero que este mensaje le sirva a quien, como yo, haya estado preocupado por la configuración de las funciones de correo electrónico en la versión 1.8.8.4., y más concretamente los mensajes de reenvío de contraseña.

En otro post (http://www.chamilo.org/forum/viewtopic.php?f=15&t=1513&hilit=smtp) se explica muy bien que el archivo en el que se configura el correo saliente está en /main/inc/conf/mail.conf.php

La configuración que me ha funcionado en un servidor linux ha sido:
Code: Select all
$platform_email['SMTP_FROM_EMAIL']   = (isset($administrator['email'])?$administrator['email']:'admin@example.com');
$platform_email['SMTP_FROM_NAME']    = (isset($administrator['name'])?$administrator['name']:'John Doe');
$platform_email['SMTP_HOST']         = 'mail.psicologiadeportiva.net';
$platform_email['SMTP_PORT']         = 587;
// $platform_email['SMTP_MAILER']       = IS_WINDOWS_OS ? 'smtp' : 'mail'; // mail, sendmail or smtp
$platform_email['SMTP_MAILER']       = 'smtp'; // mail, sendmail or smtp
$platform_email['SMTP_AUTH']         = 1; // Default: 0
$platform_email['SMTP_USER']         = 'user@server';
$platform_email['SMTP_PASS']         = 'password';
$platform_email['SMTP_CHARSET']      = api_get_system_encoding();

Hay que tener en cuenta que mi servidor no usaba el puerto habitual, por lo que he cambiado ese parámetro a 587. También he forzado el valor de SMTP_MAILER a 'smtp' para evitar que se utilizase la función mail() de php por defecto.

Tras configurarlo de esta forma los mensajes de los administradores a los usuarios, así como los mensajes entre usuarios envían una notificación por email (dependiendo de cómo esté configurada la plataforma, claro).

A partir de ahí, lo más complicado ha sido encontrar la razón por la que no se enviaban los mensajes de recuperación de contraseñas. Tras múltiples pruebas, he encontrado que la función api_mail es la que se encarga de enviar estos emails, que se encuentra en /main/inc/lib/mail.lib.inc.php
En la línea 33 aparece:
Code: Select all
   if (api_valid_email($recipient_email)) {
      return 0;
   }

de este modo se solicita que se compruebe mediante otra función si la dirección a la que hay que enviar el email es válida. Como esta función devuelve el mismo email que se le pasa, es un error interrumpir la función api_mail cuando el email es válido. Por tanto, hay que interrumpirla cuando ocurra lo contrario:
Code: Select all
if ((api_valid_email($recipient_email)) == false) {
      return 0;
   }

Yo he cambiado el código de arriba por el de abajo y ya se realizan correctamente todos los reenvíos de contraseñas.

Espero que a alguien más le sirvan las horas que he perdido en esto.
Un saludo.
eneko
 
Posts: 19
Joined: Wed Feb 02, 2011 11:48 am

Re: Bug en reenvío de contraseña [1.8.8.4]

Postby edwin.huertas » Tue Sep 13, 2011 3:53 pm

Muchas gracias, también tenia el mismo problema, ya lo solucione con tu ayuda!!
nuevamente gracias!!!!
edwin.huertas
 
Posts: 6
Joined: Tue Apr 13, 2010 6:51 pm

Re: Bug en reenvío de contraseña [1.8.8.4]

Postby eneko » Tue Sep 13, 2011 10:41 pm

Hola Edwin.
Me alegro mucho de que te haya servido esta solución.
Un saludo.
eneko
 
Posts: 19
Joined: Wed Feb 02, 2011 11:48 am

Re: Bug en reenvío de contraseña [1.8.8.4]

Postby pereira.ricardo » Thu Apr 12, 2012 2:26 pm

GRACIAS!!!!! A mi tambien me sirvio esta solucion.
pereira.ricardo
 
Posts: 4
Joined: Wed Apr 11, 2012 2:13 pm

Re: Bug en reenvío de contraseña [1.8.8.4]

Postby sherazbutts » Fri Jun 08, 2012 2:32 pm

Gracias por dar. Creo que es absolutamente increíble y uno de los mejores blogs que he visto. Su breve artículo es realmente asombroso. trendsandgadgets.net
sherazbutts
 
Posts: 1
Joined: Fri Jun 08, 2012 2:23 pm

Re: Bug en reenvío de contraseña [1.8.8.4]

Postby mcastells » Mon Jun 11, 2012 7:32 pm

Tenía el mismo problema, he seguido tus recomendaciones y funciona!
Mil gracias por compartir la solución!
mcastells
 
Posts: 1
Joined: Mon Jun 11, 2012 7:25 pm

Re: Bug en reenvío de contraseña [1.8.8.4]

Postby rcamaster » Wed Jun 20, 2012 9:55 pm

yo hice lo primero que dices pero al hacer lo segundo


En la línea 33 aparece:
CODE: SELECT ALL
if (api_valid_email($recipient_email)) {
return 0;
}

de este modo se solicita que se compruebe mediante otra función si la dirección a la que hay que enviar el email es válida. Como esta función devuelve el mismo email que se le pasa, es un error interrumpir la función api_mail cuando el email es válido. Por tanto, hay que interrumpirla cuando ocurra lo contrario:
CODE: SELECT ALL
if ((api_valid_email($recipient_email)) == false) {
return 0;
}



se me muere el sitio, entonces solo agregue el diferencia de la linea 33 según este código.


http://support.chamilo.org/projects/cha ... ib.inc.php

suerte!
rcamaster
 
Posts: 15
Joined: Fri Mar 18, 2011 12:30 am


Return to Spanish

Who is online

Users browsing this forum: No registered users and 3 guests

Social network

Youtube

Subscribe to our newsletter

Leave us your e-mail in the box below, then make sure you approve the confirmation e-mail you will receive

 


 

Upcoming events