¿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('tucorreo@tudominio.com','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("tucorreo@tudominio.com");

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

Tags: , , , , ,

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

  1. carcupo dice:

    Me has salvado la vida, 3 puntos colega.

  2. judavi dice:

    😉 con gusto!

  3. james dice:

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

  4. manoletux dice:

    Ole por ti!!! muchisimas gracias!!!

  5. judavi dice:

    Con mucho gusto 🙂

  6. Isay Quiroga dice:

    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 isayqv@hotmail.com; 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 dice:

    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 dice:

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

  9. Divay dice:

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

  10. Antonio dice:

    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 dice:

    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 dice:

    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 dice:

    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 dice:

    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 dice:

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

  16. Francisco dice:

    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 info@tiendaexma.xmcreativa.com

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

  17. judavi dice:

    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. 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 dice:

    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 dice:

    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 dice:

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

  22. George dice:

    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 midireccion@midominio.com 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 dice:

    Te amo!

    Tu: Muy Bien!

  24. VICKAY dice:

    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

  25. Juan Antonio dice:

    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

  26. Ricardo dice:

    Buenas a tod@s!!

    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.

  27. Juan dice:

    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.

  28. judavi dice:

    Hola Juan! Que bueno que te funciono! 🙂

  29. Oscar dice:

    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.

  30. Javier dice:

    Genial ! me viene de perlas ! Muchas gracias !

  31. judavi dice:

    A ti Javier por tu comentario 🙂

  32. Mikel dice:

    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. 😉

  33. Sync dice:

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

  34. JimKa dice:

    A mi con ese proveedor me fue de maravilla.

  35. Alfredo dice:

    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.

  36. azul dice:

    muchisisismas gracias!!!!!!

    🙂

  37. Juan dice:

    Menudo makinon!!!!

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

    Muchas Gracias

  38. axel escobar dice:

    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

  39. GEDAR dice:

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

  40. Mamoy dice:

    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.

  41. Mamoy dice:

    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!!!

  42. Ron Morales dice:

    me a ido de lujo muchas gracias!!!

  43. vgomez dice:

    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, ‘mi-email@mi-dominio.com’ ”
    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/

  44. Jose dice:

    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

  45. asoria dice:

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

  46. Jonathan dice:

    Excelente. Funcionó.

  47. Luis Enrique dice:

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

  48. Alex dice:

    Genial, ha funcionado.

  49. Jorge dice:

    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.

  50. Kikesainz dice:

    Para la versión 1.6.1.7 la solución la he encontrado aquí:
    https://www.prestashop.com/forums/topic/564585-no-envio-email-version-1617/
    Espero que os sirva.

    Saludos

Leave a Reply