Vi è ancora capitato che Magento non riesca ad inviare la mail di conferma dell’ordine? Se controllate bene il file exception.log in var/log/ troverete un errore di questo tipo:
1 2 3 4 |
ERR (3): exception 'Zend_Mail_Transport_Exception' with message 'Missing To header' in /domains/domain_name/http/lib/Zend/Mail/Transport/Sendmail.php:182 |
Per risolvere questo problema, prima di tutto cercate l’ordine senza l’indirizzo e-mail del Cliente con la seguente query:
1 2 3 4 5 |
SELECT * FROM `sales_flat_order` WHERE `customer_email` IS NULL |
Ora consigliamo di aggiornare l’e-mail non esistente del Cliente con una inventata:
1 2 3 |
UPDATE `sales_flat_order` SET `customer_email` = '*******@yahoo.com' WHERE `sales_flat_order`.`entity_id` =YOUR_ORDER_ID ; |
Ora cercate l’ordine nella tabella core_email_queue
1 2 3 4 |
SELECT * FROM `core_email_queue` WHERE entity_id='YOUR_ORDER_ID'; ///questo non è il numero dell'ordine. ////puoi recuperare l'id dell'ordine dall'url dell'ordine stesso nel pannello di controllo |
Dovreste trovare 2 record se avete impostato di ricevere anche voi la mail di conferma d’ordine.
Ed ora trovate i corrispondenti nella tabella core_email_queue_recipients
1 2 3 4 |
SELECT * FROM `core_email_queue_recipients` WHERE message_id='MESSAGE_ID_FROM_core_email_queue' SELECT * FROM `core_email_queue_recipients` WHERE message_id='MESSAGE_ID_FROM_core_email_queue' |
Se non troverete message_id in core_email_queue_recipients, allora dovrete eliminarli dalla tabella core_email_queue
Soluzione Rapida 2:
Un’altra soluzione rapida che potete provare è quella di svuotare le due tabelle delle email in coda.
1 2 3 4 |
TRUNCATE core_email_queue_recipients; TRUNCATE core_email_queue; |