Lorsque Magento envois des mails HTML, que ce soit pour la newsletter ou les différentes notifications, le format généré n’est pas compatible avec tous les navigateurs. Il arrive que le mail soit définis comme du SPAM (HTML_MIME_NO_HTML_TAG), ou soit carrément illisible dans le client mail (affichage du code HTML, plutôt que du message formaté). Cependant, il est possible de remédier simplement à ce problème en éditant deux fichiers php du CORE de Magento.

Les 2 fichiers Template.php à éditer se trouvent ci-après (relativement au dossier racine de l’installation de Magento):

  • ./app/code/core/Mage/Core/Model/Email/Template.php
  • ./app/code/core/Mage/Newsletter/Model/Template.php

Pour le premier, soit ./app/code/core/Mage/Core/Model/Email/Template.php, il faut éditer la fonction send() (ligne 345).
Remplacer le code ci-après:

if($this->isPlain()) {
$mail->setBodyText($text);
} else {
$mail->setBodyHTML($text);
}

par celui-ci:

 if($this->isPlain()) {
$mail->setBodyText($text);
} else {
$mail->setBodyText($text);
$mail->setBodyHTML($text);
} 

Pour le deuxième fichier, soit ./app/code/core/Mage/Newsletter/Model/Template.php, il faut faire la même modification (ligne 222).

Remplacer le code ci-après:

if($this->isPlain()) {
$mail->setBodyText($text);
} else {
$mail->setBodyHTML($text);
}

par celui-ci:

if($this->isPlain()) {
$mail->setBodyText($text);
} else {
$mail->setBodyText($text);
$mail->setBodyHTML($text);
}

Note: les N° lignes des fichiers Template.php mentionnés correspondent à la version 1.2.0.1 de Magento.

Sources et informations:

Pour la version 1.5.0.1 de Magento :
/app/code/core/Mage/Core/Model/Email/Template.php (ligne 375)
/app/code/core/Mage/Newsletter/Model/Template.php (ligne 285)