¿Prestashop no te envía correos sin razón aparente de error? Acá la solución!
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
Related posts:











Me has salvado la vida, 3 puntos colega.
nada, a mi me sigue sin enviar correos, ni enviar a un amigo y el apartado contacto..
Ole por ti!!! muchisimas gracias!!!
Con mucho gusto
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
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.
Con mucho gusto manoletux, cuando necesites algo más solo pasa
Me ha funciona pero con la funcion de PHP, con la configuracion de mi correo no funciona ni a tiros
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.
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.
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
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.
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
tambien he puesto mi dirección de correos de gmail, para simplificar problemas, eso es correcto? gracias de antemano.
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.
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
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.
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,
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!
Solucionado lo del php warning. Hice todos los cambios pero me sigue sin funcionar el envío de correos.
Que hago?
Gracias.
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
Te amo!
Tu: Muy Bien!
Ah????
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
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
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.
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.
Hola Juan! Que bueno que te funciono!
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.
Genial ! me viene de perlas ! Muchas gracias !
A ti Javier por tu comentario
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.