01 abril 2010 ~ 51 Comments

¿Prestashop no te envía correos sin razón aparente de error? Acá la solución!

prestashop en Judavi.com Prestashop es uno de los más populares sistemas de ventas en línea. Es bastante estable y aunque no hay muchos –themes- gratuitos es lo suficientemente estable y personalizable para ser una excelente opción al momento de querer montar nuestra propia tienda virtual. Sin embargo tiene una dificultad y es que es TAN grande que en ocasiones corregir un error o adecuar algo a nuestras propias expectativas puede ser un tanto difícil. Esta entrada te muestra la solución a un problema que me tuvo rondando por varios días… En ocasiones cuando instalamos un –prestashop- desde cero, este envía algunos correos y otros no.

El error ocurre cuando notamos como anomalía que recibimos correos como los de contacto, pero al momento del sistema intentar mandar los correos de confirmación del pedido para el cliente no sucede nada. –Prestashop- dice que envía el correo pero al cliente no le llega.

El problema se debe a una incompatibilidad de nuestro hosting con algunas cabeceras adicionales al intentar enviar el correo, o también por que el campo “De:” no coincide con el de nuestro dominio.

Antes que nada prueba que tú hosting te permite enviar correos. Para ello crea un archivo llamado correo.php y coloca lo siguiente:

   1: <?php

   2: if(mail([email protected]','Papa rellena','

      Estoy probando que llega el correo'))

   3: echo 'El correo fue enviado satisfactoriamente';

   4: else

   5: echo 'Rayos! el correo no fue enviado';

   6: ?>

Si tu ves el mensaje de “El correo fue enviado satisfactoriamente” procede entonces con lo siguiente:

Solución:

En /tools/swift/Swift/Message.php linea #79

Cambia:

   1: $this->setFrom("");

Por:

   1: $this->setFrom("[email protected]");

En /tools/swift/Swift.php after linea 370

Cambia:

   1: if (!($has_reply_to = $message->getReplyTo())) $message->setReplyTo($from);

Por:

   1: if (!$has_reply_to[0])

   2: $message->setReplyTo($from->getAddress());

Has una prueba y si finalmente si todavía no llegan los correos:

En /tools/swift/Swift/Plugin/MailSend.php linea # 159

Coloca:

   1: $params = "";

Espero que te haya sido de utilidad. Agradezco a –Presto Change- por la información.

Visita el articulo original: http://www.presto-changeo.com/content/9-fix-email-problems

Share and Enjoy:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • Live

51 Responses to “¿Prestashop no te envía correos sin razón aparente de error? Acá la solución!”

  1. carcupo 14 mayo 2010 at 6:18 am Permalink

    Me has salvado la vida, 3 puntos colega.

  2. judavi 19 mayo 2010 at 10:16 pm Permalink

    😉 con gusto!

  3. james 7 julio 2010 at 4:12 am Permalink

    nada, a mi me sigue sin enviar correos, ni enviar a un amigo y el apartado contacto..

  4. manoletux 28 julio 2010 at 11:52 am Permalink

    Ole por ti!!! muchisimas gracias!!!

  5. judavi 1 agosto 2010 at 1:34 pm Permalink

    Con mucho gusto :)

  6. Isay Quiroga 9 agosto 2010 at 2:36 pm Permalink

    Hombre, muchas gracias por su ayuda el problema es que ya cambie el codigo en los archivos .php y sigue ocurriendo lo mismo me sale un mensaje en mi correo de soporte que dice “Mail Delivery System
    para usuario

    mostrar detalles 14:32 (0 minutos antes)

    A message that you sent was rejected by the local scanning code that
    checks incoming messages on this system. The following error was given:

    “Relaying not permitted”

    —— This is a copy of your message, including all the headers. ——

    Received: from bavacl by server18.namecheaphosting.com with local (Exim 4.69)
    (envelope-from )
    id 1OiY5N-0003jm-6B
    for [email protected]; Mon, 09 Aug 2010 15:32:37 -0400
    To: Isay Quiroga .

    estoy bloqueado por esto les agradeceria me ayudaran, yo recivo los mail de pedido pero mi cliente no recive su copia de lo que solicito.

    Gracias por su ayuda

  7. judavi 9 agosto 2010 at 10:02 pm Permalink

    Bueno en primer lugar te agradezco por tomarte el tiempo de comentar, ahora bien respecto a tú problema parece ser más de parte de tu proveedor, te lo digo por el mensaje que tienes, es decir “A message that you sent was rejected by the local scanning code” debes tener en cuenta al momento de realizar la configuración de tú prestashop cosas como la dirección desde donde estas haciendo los envíos, si es una dirección que realmente existe o no, también debes considerar la configuración del registro MX de tú DNS, o inclusive podríamos pensar en configurar de forma correcta las llaves SPF para que no reboten los correos. Para este momento no sé exactamente si aun tienes el problema de todos modos este es mi correo, quedo atento si aun necesitas colaboración con el asunto.

  8. judavi 9 agosto 2010 at 10:04 pm Permalink

    Con mucho gusto manoletux, cuando necesites algo más solo pasa 😉

  9. Divay 6 noviembre 2010 at 6:01 am Permalink

    Me ha funciona pero con la funcion de PHP, con la configuracion de mi correo no funciona ni a tiros

  10. Antonio 28 diciembre 2010 at 12:56 pm Permalink

    Buenas, este sistema que has publicado en los códicos php no me funciona, la web dice que si que lo envía pero el usuario de correo no recibe nada, ni en enviar a un amigo ni en las pruebas desde el panel de administración de prestashop. Pero insisto en que el correo dice que lo ha enviado.

  11. Enrique 5 enero 2011 at 5:13 pm Permalink

    El problema se puede deber a que muchos host han bloqueado la funcion mail, de manera que no es posible enviar correos en forma automática. Consulta a tu hosting que pasa con esta función y que solución te ofrece.

  12. amdacoba 21 enero 2011 at 5:57 am Permalink

    OK!
    Perfectamente explicado y perfectamente resuelto.
    Muchas gracias.

    De todas formas pienso que es un bug del programa; si algo falla a tanta gente, es que alguna vuelta habría que darle.
    Mi hosting no tiene problemas de estos y programas como Joomla, WordPress, ect… se instalan sin problemas de correos a la primera; y con tuve problemas.
    Tanto que se me quedo colgado al terminar la instalación por no poder enviar el email con los datos. Tuve que reinstalar por segunda vez, sin marcar la casilla de enviar datos, y todo perfecto.

    Lo dicho; muchas gracias por la solución

  13. judavi 26 enero 2011 at 5:35 pm Permalink

    Si es un bug raro, pero fíjate que le sucede a mucha gente, y a mucha otra ni le pasa nada con ello. Entonces depronto por eso no han identificado exactamente cual es el error. Ademas bueno, por otro lado Prestashop ha estado escaso de actualizaciones últimamente. Entonces no sé hasta donde quieran seguir con el proyecto. Notaras que ellos ademas brinda soporte técnico de pago, entonces quizás lo intereses son distintos. Gracias por tú comentario y me alegra mucho que te haya sido de ayuda.

  14. Francisco 24 mayo 2011 at 3:12 pm Permalink

    Muchas gracias por la info, está perfectamente explicado, pero nada, no me funciona. dice que envía los correos y no hace nada. ya he probado con varias cuentas de email distintas.

    mi tienda está alojada en un subdominio, puede influir eso en algo?
    http://tiendaexma.xmcreativa.com/
    aunque no tendría por que no?
    Saludos y gracias

  15. Francisco 24 mayo 2011 at 3:15 pm Permalink

    tambien he puesto mi dirección de correos de gmail, para simplificar problemas, eso es correcto? gracias de antemano.

  16. Francisco 25 mayo 2011 at 4:55 am Permalink

    Solucionado, Gracias.

    He colocado todo el código tal cual lo explicas, y el gran fallo era que estaba poniendo mi dirección de email personal ( para recibir directamente los correos en mi cuenta ) , y tenía que poner la dirección de email del dominio.
    Mi tienda es tiendaexma.xmcreativa.com y el mail correcto [email protected]

    Gracias de nuevo por vuestro trabajo, sinceramente, no lo podría haber solucionado sin vuestra ayuda.

  17. judavi 23 junio 2011 at 3:24 pm Permalink

    jeje bueno esos pequeños despistes a veces nos hacen perder mucho tiempo. Me alegra mucho que te haya funcionado tu prestashop, es con mucho gusto, antes gracias a ti Francisco por tu comentario 😉

  18. Jose Manuel Escuder 6 julio 2011 at 10:21 am Permalink

    Hola, estoy utilizando prestashop 1.4.2.5
    Antes las consultas desde la tienda me llegaban, el mail de prueba y los mails a los clientes no.
    He cambiado el código según tus instrucciones y ahora las consultas desde la tienda no llegan, los mails a los clientes y el mail de prueba tampoco.
    Agradecería cualquier ayuda.

  19. judavi 6 julio 2011 at 8:12 pm Permalink

    Hola Jose,

    Bueno el error común cuando a veces se prueba con estos asuntos del correo en Prestashop es la configuración del servidor de envío de correos, es vital que revises que has colocado todos los parámetros bien. Incluso podía ser que te estaba “funcionando” como lo tenias originalmente pero algún parámetro de hacía falta.

    Verifica sobre todo lo que te digo del servidor SMTP, si aun no te funciona me dices y miramos alguna otra solución,

    Quedo atento,

  20. Mike 21 julio 2011 at 4:02 am Permalink

    Hola!
    Hice la primera comprobación y me salta este mensaje.

    PHP Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in D:\XVRT\mi dominio\Html\env.php on line 3

    ¿Como lo soluciono?
    Gracias!

  21. Mike 21 julio 2011 at 7:05 am Permalink

    Solucionado lo del php warning. Hice todos los cambios pero me sigue sin funcionar el envío de correos.
    Que hago?
    Gracias.

  22. George 3 agosto 2011 at 9:59 am Permalink

    Yo estoy teniendo los mismos problemas. Utilizo la version 1.4.4 y es muy extraño lo que pasa. En el formulario de contacto, si pongo una direccion de un dominio propio tipo [email protected] el mail llega a la direccion y tambien a la tienda. En cambio si pongo una direccion gmail o hotmail no llega nada a la tienda, en cambio llega el mail a gmail y hotmail y ademas en la carpeta spam llega una copia con el asunto mail delivered error. Que puede ser? como lo podria arreglar?
    gracias

  23. Fer 7 septiembre 2011 at 2:30 am Permalink

    Te amo!

    Tu: Muy Bien!

  24. judavi 12 septiembre 2011 at 10:37 pm Permalink

    Ah????

  25. VICKAY 22 septiembre 2011 at 1:29 pm Permalink

    hola amigo he realizado lo de tu solucion y no funciona yo tengo mi hospedaje en godaddy, y te comento desde la seccion admin en mails si uso el enviar mail de prueba si lo envia y si llega, pero desde la seccion de pedidos y enviarle un mail al cliente no lo envia, salta el siguiente error:

    se ha producido un error cuando se enviaba el emeil al cliente

    en un cintillo de color rojo

    tampoco envia mail con el modulo enviaselo a un amigo,

    tampoco envia la confirmacion del pedido

    pero si envia el mail de nuevo pedido al admin

    que puede ser este problema

    saludos

  26. Juan Antonio 2 enero 2012 at 11:04 pm Permalink

    Hola buenas
    Yo tengo el mismo problema, lo he intentado todo , y no consigo que envíe correos a los cliente, cuando hacen una consulta con el formulario de contacto tampoco me llegan los avisos.

    Los e-mail de prueba si me llegan.

    Lo hice tal cual esta en el post..
    Mi proveedor de hosting es 1and1

    Me podéis echar una mano, me estoy volviendo loco

    gracias

  27. Ricardo 3 enero 2012 at 10:27 am Permalink

    Buenas a [email protected]!!

    Tengo el mismo problema he intentado solucionarlo con lo que comentáis pero nada de nada, al enviar el test me dice que OK pero luego no recibo nada de nada, he probado el formulario de contacto me da el siguiente error:

    Hay 1 error :

    01 se ha producido un error al enviar el mensaje

    Otros datos de mi tienda, tengo el hosting en un isp y el correo en otro.

    Muchas gracias y un saludo.

    Ricardo.

  28. Juan 22 febrero 2012 at 11:04 am Permalink

    Hola, muchas gracias, acabo de cambiar esos códigos y me funcionó. Espero que a los que no les funcione tengan la misma suerte que yo.

    Un saludo.

  29. judavi 26 febrero 2012 at 10:36 am Permalink

    Hola Juan! Que bueno que te funciono! :)

  30. Oscar 27 febrero 2012 at 10:58 am Permalink

    Mi problema radicaba en que al enviar un email desde el formulario de contacto el correo de la tienda lo recibía. Pero el correo del cliente que mandaba el email, no recibía nada. Y daba error desde el propio formulario de contacto.
    Después de buscar y buscar, me di cuenta que el motivo de mi error particular era el hecho de que no tenia el fichero contact-form.hmtl en la carpeta mail/es.
    Lo copie de una instalación limpia y listo.
    Compruebenlo por si fuera eso.
    Atentamente un saludo.

  31. Javier 9 marzo 2012 at 6:01 am Permalink

    Genial ! me viene de perlas ! Muchas gracias !

  32. judavi 15 marzo 2012 at 9:15 pm Permalink

    A ti Javier por tu comentario :)

  33. Mikel 17 abril 2012 at 2:46 am Permalink

    Buenas….tenía el mismo problema que muchos de aquí. Tenía en el administrador 2 opciones creadas para recibir los e-mails del formulario de contacto. Soporte técnico y Atención al cliente.

    Al principio su nombre estaba en inglés y funcionaba todo perfectamente.

    Pues bien, lo cambié a castellano y dejó de funcionar…

    Me decía que el e-mail se había enviado correctamente, pero nada de nada…no llegaba. Si aparecía en la zona del administrador, pero no te llegaba el aviso al e-mail.

    Pensaba que algún cambio que hice en las plantillas de e-mail pudo ser el causante…pero no…en esa parte todo estaba correcto.

    Hice mil pruebas y nada..

    Al final…he conseguido corregirlo….

    El problema era el nombre de la opción de los contactos en el administrador…le puse tíldes y al parecer no lo permite.

    Soporte técnico –> Soporte tecnico
    Atención al cliente —> Atencion al cliente

    Y Zas!!! Ahora funciona!!!

    No se si quizás lo hayáis solucionado (ha pasado bastante tiempo)…pero bueno, por si acaso y por los que puedan venir detrás…ahí dejo la problemática que he tenido yo y como lo he resuelto…espero que pueda ayudar a alguien.

    Saludos. 😉

  34. Sync 11 julio 2012 at 2:20 am Permalink

    Gracias por la ayuda. Siguiendo todo el post y los comentarios…me funcionó.

  35. JimKa 23 agosto 2012 at 1:28 pm Permalink

    A mi con ese proveedor me fue de maravilla.

  36. Alfredo 26 agosto 2012 at 10:49 pm Permalink

    yo resolvi en problema de godaddy y prestashop asi

    en smtp puse: relay-hosting.secureserver.net
    en port: 25
    y no es necesario poner nada mas y funciono.

  37. azul 27 septiembre 2012 at 6:36 am Permalink

    muchisisismas gracias!!!!!!

    :)

  38. Juan 26 noviembre 2012 at 4:27 pm Permalink

    Menudo makinon!!!!

    Llevaba 3 dias volviendome loco , ha sido modificar los 3 ficheros y funcionar perfetamente.

    Muchas Gracias

  39. axel escobar 1 febrero 2013 at 12:31 am Permalink

    hola a todos tengo el problema de que todo pedido que hacen en mi tienda se va a spam alguna solucion ya que me estoy bolviendo loco

  40. GEDAR 27 junio 2013 at 7:14 am Permalink

    Muchas Gracias, llevaba mucho tiempo con la queja de nuestros clientes

  41. Mamoy 19 julio 2013 at 4:21 am Permalink

    Realmente excelente!!! Muchisimas Gracias, todo fue perfecto y muy facil de aplicar. En mi caso no sabia como hacer para que funcione el email desde los servicios de Hotmail o Outlook, SENCILLO con esta completa ayuda. Muy Recomendable.

  42. Mamoy 19 julio 2013 at 10:19 pm Permalink

    judavi,

    Ayer en todas las pruebas funciono perfectmente pero ahora despues de unas horas ya no funciono nada.. que puede ser??? o que debo hacer???

    ayuda porfa!!!

  43. Ron Morales 23 septiembre 2013 at 1:58 pm Permalink

    me a ido de lujo muchas gracias!!!

  44. vgomez 24 abril 2014 at 6:36 am Permalink

    Esta solución no me funcionaba, seguían sin enviarse los mails desde el formulario de contacto. Al final conseguí arreglarlo modificando /opt/lampp/htdocs/prestashop/controllers/front/ContactController.php.
    He cambiado
    $contact->email, $contact->name, $from
    Por
    $contact->email, $contact->name, ‘[email protected]’ ”
    Al parecer el servidor de correo tiene conflicto al intentar enviar el correo con un emisor de un dominio que no es suyo. Por el mismo motivo, el formulario sí que funcionaría indicando mails del dominio propio.
    Esta solución he podido encontrarla en
    http://www.prestashop.com/forums/topic/167511-contact-form-e-mails-not-send/

  45. Jose 22 septiembre 2014 at 5:50 am Permalink

    Muy buen aporte!!

    He modificado los tres ficheros que indicabas y ya llegan los correos a las cuentas de gmail.

    Era una página antigua de prestashop ver. 1.1

  46. asoria 12 enero 2015 at 2:02 pm Permalink

    Muchas gracias!! LLevaba un gran quebradero de cabeza con este tema, estoy trabajando con la versión 1.6 y también funciona!

  47. Jonathan 2 febrero 2015 at 1:44 am Permalink

    Excelente. Funcionó.

  48. Luis Enrique 12 enero 2016 at 7:31 pm Permalink

    Me a servido muchisimo Muchas Gracias
    Estoy con la versión 1.6.1.3

  49. Alex 2 abril 2016 at 5:17 am Permalink

    Genial, ha funcionado.

  50. Josh 1 julio 2016 at 5:19 pm Permalink

    Chingon!!!!

  51. Jorge 28 octubre 2016 at 5:01 am Permalink

    Hola, alguien podría decir que modificar en la version de prestashop 1.6.1.7?

    No he conseguido encontrar las partes a editar, han cambiado un poco el sistema de archicos del swift.

    Este tema me esta haciendo la vida imposible, y la verdad es que no hay muchas maneras de ver a que altura del envio falla.

    Gracias por adelantado.


Vamos! Deja un comentario :)