MargaritaS Posted November 2, 2016 Share Posted November 2, 2016 (edited) Buenos días, hice una migración de hosting a hosting, el dominio en el hosting original lo he redireccionado al nuevo hosting que le he puesto a la web, porque para no perder pedidos mientras hacía la migración, al segundo hosting le he asignado otro dominio para la misma tienda y éstee esque manda en el hosting aunque el primero se redirija. El caso es que el email de contacto de la tienda, que es el que se ocupa de recibir y enviar los pedidos tiene el dominio del primer hosting, el que ahora se redirije al dominio del segundo hosting asignado ¿tiene que ver eso en el problema? Edited November 4, 2016 by MargaritaS (see edit history) Link to comment Share on other sites More sharing options...
MargaritaS Posted November 2, 2016 Author Share Posted November 2, 2016 Explico qué es lo que sucede: A) 1) Ni el cliente ni el administrador de la web recibe el mensaje de confirmación de pedido, ni los avisos de los cambios de estado 2) El mensaje de prueba se envía y recibe correctamente 3) Si un cliente escribe desde el formulario de contacto de prestashop, el administrador recibe el mensaje. 4) Si el administrador contesta al cliente desde el formulario de contacto, el cliente no recibe el mensaje. La direccción de correo es [email protected] y es la misma en:-Preferencias->Contactos de la tienda-Parámetros avanzados->Correo electrónico-Módulos->Módulos: Módulo "alertas de correo" C)-En Parámetros avanzados->Correo electrónico, la configuración Usar la función mail() de PHP. Recomendado en la mayoría de los casos Y el mensaje de prueba se envía. D)-He migrado la web de hosting. Si antes la web era dominio1.com, al pasar de hosting el dominio que manda sobre el nuevo hosting es dominio2.com y el dominio1.com redirige al dominio2.com - El webmail de dominio1.com puede enviar y recibir mensajes sin ningún problema- El webmail de dominio2.com puede enviar y recibir mensajes sin ningún problema Googleando he leído en algunos aportes que aconsejan que la dirección de correo que se use sea la misma que el dominio de la web. En mi caso el dominio de la cuenta usada es un dominio usado por la web pero que está redirigido. Así que he probado de usar el un correo del dominio2.com en:-Preferencias->Contactos de la tienda-Parámetros avanzados->Correo electrónico-Módulos->Módulos: Módulo "alertas de correo" Pero el mensaje de prueba en este caso, desde Prestashop dice que s eha enviado, pero a la práctiac no llega al webmail. En cambio con el correo del dominio1.com, prestashop dice que se envía y a la práctica también llega a la bandeja de entrada. Un compañero me ha compañero me ha comentado que hasta se puede tener el dominio en un hosting y la instalación en otro, que no pasa nada que el dominio1.com esté redirigido porque lo que hace que los mensajes se envíen es dónde tengo el servidor, no el dominio. E)-En Pedidos->estados, la columna de enviar mensaje está activada. ------------------------------------- ¿Dónde tengo el error? y ¿Cuál es mi solución? Link to comment Share on other sites More sharing options...
MargaritaS Posted November 2, 2016 Author Share Posted November 2, 2016 -En Parámetros avanzados->Correo electrónico, la configuración Usar la función mail() de PHP. Recomendado en la mayoría de los casos Como el sistema de mensajes de correo de C-panel a veces no funciona bien, las cuentas de correo creadas con los dominios de la web, el dominio1.com y el dominio2.com, al hacer la migración de hosting las he pasado a la aplicación de mensajería Workspace, que es mucho mejor que el sistema de mensajería de C-panel. La compañía del hosting, tras comentarles que no se envían los mensajes salientes ni al correo con dominio2.com ni al del cliente de hotmail, han validado la entrada Mx en versión remoto y han configurado el registro Mx. Yo sigo con el mismo problemas, no se envían al cliente ni al correo administrador de contacto las confirmaciones de pedido ni los cambios de estado auqnue se hacen los pedidos y lo cambios de estado. La compañía del hosting ha hecho pruebas desde un formulario interno PHP dentro del hosting y, los mensajes salientes me han llegado a una cuenta de correo de gmail, por lo que está comprobado que la función de PHP de envío de mensajería funciona desde el servidor, pero las órdenes de prestashop no se envían... así que el problema está en prestashop. Link to comment Share on other sites More sharing options...
MargaritaS Posted November 4, 2016 Author Share Posted November 4, 2016 SOLUCIONADO! 1.-Instalé en una subcarpeta la versión limpia de prestashop, o sea, tal cual prestashop a palo seco, el zip de instalación y comprobé que se enviaban y recibían los mensajes 2.-Modifiqué los siguientes archivos: /tools/swift/Swift/Plugin/MailSend.php/tools/swift/Swift/Message.php/tools/swift/Swift.php 1.-En: /tools/swift/Swift/Plugin/MailSend.php (around line 158) Cambiar esto:$headers = $headers->build(); Por esto:$headers = $headers->build();$params = “”; ->aquí cuidado, vigilar que las comillas sean las correctas, porque al copiar el código se ponen mal 2.-En: /tools/swift/Swift/Message.php (around line 79) Cambiar esto:$this->setFrom(“”); Por esto:$this->setFrom(“yourmail@yourdomain”); aquí cuidado, vigilar que las comillas sean las correctas, porque al copiar el código se ponen mal. Y hay que escribir un correo electrónico que exista y que sea con el dominio de la tienda de prestashop con la que estamos trabajando. 3.-En: /tools/swift/Swift.php (around line 370) Cambiar esto:if (!($has_reply_to = $message->getReplyTo())) $message->setReplyTo($from); Por esto:if (!($has_reply_to = $message->getReplyTo())) $message->setReplyTo($from);if (!$has_reply_to[0]) $message->setReplyTo($from->getAddress()); Link to comment Share on other sites More sharing options...
MargaritaS Posted November 4, 2016 Author Share Posted November 4, 2016 Mi versión de prestashop es 1.6.0.13 Link to comment Share on other sites More sharing options...
Recommended Posts