Jump to content

Email modifié = logo en piece jointe


Recommended Posts

J' ai besoin de modifier le texte des emails, donc à l' aide de kompozer je fais mes changements sur les emails en html, mais lorsque je teste en envoyant les nouveaux emails, à tout les coups le logo se retrouve en piece jointe et n' est pas intégré dans l' email lors de la réception.
Si j' ajoute ne serait ce qu un mot, idem

Il y a t'il une manip à faire. Ou faut il integrer une image fixe pour le logo.

Link to comment
Share on other sites

  • 1 year later...
  • 8 months later...

Pour supprimer le logo en pièce jointe tu peux supprimer les lignes 102 et 103 du fichier classes/Mail.php


if ($fileAttachment AND isset($fileAttachment['content']) AND isset($fileAttachment['name']) AND isset($fileAttachment['mime']))
               $message->attach(new Swift_Message_Attachment($fileAttachment['content'], $fileAttachment['name'], $fileAttachment['mime'])); 

Link to comment
Share on other sites

  • 9 months later...

J'avoue, je déterre un vieux topic, mais ce problème me travaillait :)

Pour ma part j'ai modifié le fichier mail.php pour ne plus avoir le logo en pièce jointe lorsqu'on a supprimé la variable {shop_logo}, mais qu'il s'affiche quand même dans les mails où cette variable est présente.
Ligne 145 (version 1.4.1) remplacer:


$templateVars['{shop_logo}'] = (file_exists(_PS_IMG_DIR_.'logo_mail.jpg')) ? $message->attach(new Swift_Message_Image(new Swift_File(_PS_IMG_DIR_.'logo_mail.jpg'))) : ((file_exists(_PS_IMG_DIR_.'logo.jpg')) ? $message->attach(new Swift_Message_Image(new Swift_File(_PS_IMG_DIR_.'logo.jpg'))) : '');

par:


$templateVars['{shop_logo}'] = Tools::getShopDomain(true, true).__PS_BASE_URI__.'img/logo_mail.jpg' ;

Edit du 04/10/2012
Pour Presta 1.5 (jusqu'à 1.5.1)
remplacer:


Swift_Message_Image(new Swift_File(_PS_IMG_DIR_.Configuration::get('PS_LOGO_MAIL')))) :

((file_exists(_PS_IMG_DIR_.'logo.jpg')) ? $message->attach(new Swift_Message_Image(new Swift_File(_PS_IMG_DIR_.Configuration::get('PS_LOGO')))) : '');

par:


Swift_Message_Image(new Swift_File(_PS_IMG_DIR_.Configuration::get('PS_LOGO_MAIL')))) :

Tools::getShopDomain(true, true).__PS_BASE_URI__.'img/logo_mail.jpg' ;

Pour la 1.5.2 (ben oui autant garder ce bug, même si on met à jour les fichiers...)
commenter cette partie:


else

if (file_exists(_PS_IMG_DIR_.'logo.jpg'))

$template_vars['{shop_logo}'] = $message->attach(new Swift_Message_Image(new Swift_File(_PS_IMG_DIR_.Configuration::get('PS_LOGO'))));

Pour la 1.5.4 et 1.5.5 (vraiment têtus les zozos!) remplacez ces lignes (249 - 251)


if (isset($logo))
 $template_vars['{shop_logo}'] = $message->attach(new Swift_Message_EmbeddedFile(new Swift_File($logo), null, ImageManager::getMimeTypeByExtension($logo)));

 par:

if($template_vars['{shop_logo}'] != '') { 
    if (isset($logo))
        $template_vars['{shop_logo}'] = $message->attach(new Swift_Message_EmbeddedFile(new Swift_File($logo), null, ImageManager::getMimeTypeByExtension($logo)));
} 

Eolia

Edited by Eolia (see edit history)
  • Like 5
Link to comment
Share on other sites

  • 2 months later...
  • 1 year later...
  • 1 month later...
  • 1 month later...
  • 1 month later...

Je ne comprend pas j'ai fait les modifications pour PS 1.5.4. Je n'ai plus le logo en pièce jointe, certe, mais maintenant si je mais dans la newsletter {shop_logo} je me retrouve avec le lien du logo d'écrit dans la newsletter quand elle arrive.

 

Je suis obligé de copier le lien du logo en insertion d'image.

Edited by lordbdp (see edit history)
Link to comment
Share on other sites

Je ne comprend pas j'ai fait les modifications pour PS 1.5.4. Je n'ai plus le logo en pièce jointe, certe, mais maintenant si je mais dans la newsletter {shop_logo} je me retrouve avec le lien du logo d'écrit dans la newsletter quand elle arrive.

 

Je suis obligé de copier le lien du logo en insertion d'image.

Vous avez lu trop vite :)

Si vous voulez utiliser la variable smarty {shop_logo} il faut la placer dans le template global de la newsletter, celui qui est géré par smarty: modules/newsletteradmin/mails/fr/newsletter.html

 

En gros, les templates persos que vous créez correspondent au body du template smarty (ce qui est compris dans la variable {message})

Si vous désirez inclure votre logo dans votre template il faut l'insérer en tant qu'image et lui associer un lien si vous le désirez :)

Link to comment
Share on other sites

Bonsoir Eolia,

 

Pour moi, après votre modification sur PS 1.5.6, je n'ai plus l'image en pièce jointe, mais elle ne s'affiche pas non plus dans l'email. Je précise que les emails ne sont pas modifiés et que je suis en multiboutique

la variable {shop_logo} est toujours présente dans les templates ?

Je ne sais pas quelle version de mail.php vous avez car il y a eu des correctifs après la mise en ligne et je ne sais même pas si celle du zip est la bonne, voir ici: http://www.prestashop.com/forums/topic/280613-solved-upgraded-to-156-and-every-email-sent-malformed-recipient-address/?view=findpost&p=1412400

Normalement la modif que je propose ne modifie que le logo en pièce jointe, avez-vous fait un test avec le thème de base ? certains thèmes modifient la façon de gerer les templates mails...

Link to comment
Share on other sites

Bonsoir Eolia,

 

La variable {shop_logo} est toujours présente dans les templates.

Je vais essayer avec cette version de mail.php... merci pour le lien.

J'avais fait les tests avec le thème par défaut de PS et sur une installation neuve à côté...

Je m'occupe de tester cela.

Link to comment
Share on other sites

  • 2 weeks later...

Bonsoir,

 

J'ai donc fait les tests et la nouvelle version de Mail.php ne résoud pas le non affichage du logo. Je reviens donc en arrière avec le logo en pièce jointe en attendant une solution !!! Merci pour votre aide et vos indications !

remplace:

/* don't attach the logo as */
if (isset($logo))
$template_vars['{shop_logo}'] = $message->attach(new Swift_Message_EmbeddedFile(new Swift_File($logo), null, ImageManager::getMimeTypeByExtension($logo)));

par:

/* don't attach the logo as */
if (isset($logo))
    $template_vars['{shop_logo}'] = Tools::getShopDomain(true, true).__PS_BASE_URI__.'img/'.Configuration::get('PS_LOGO', null, null, $id_shop);
Edited by Eolia (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 11 months later...
  • 4 months later...

Bonjour,

 

J'ai exactement le même problème même avoir fait tout ce que vous avez dit je n'arrive toujours pas avoir le logo qui s'affiche dans les mails, ça fait plusieurs heures que je suis dessus je déprime :(

 

Tout fonctionnait parfaitement avant que je touche les traductions pour modifier le footer des mails.

 

Merci de votre aide :)

Link to comment
Share on other sites

Après voir un peu cherché, j'ai trouvé la solution au problème (testé sur un mail de confirmation de commande, à voir si cela fonctionne bien pour tous les mails).

 

Testé sous PrestaShop 1.6.0.14

 

Aller à classes/Mail.php

 

Ligne 305, changer :

if (isset($logo))
$template_vars['{shop_logo}'] = $message->attach(new Swift_Message_EmbeddedFile(new Swift_File($logo), null, ImageManager::getMimeTypeByExtension($logo)));

Par :

if (isset($logo))
$template_vars['{shop_logo}'] = Tools::getShopDomain(true, true).__PS_BASE_URI__.'img/'.Configuration::get('PS_LOGO', null, null, $id_shop);

:)

Link to comment
Share on other sites

  • 2 months later...
  • 1 month later...

Merci pour votre réponse,

 

Je suis étonnée d'être arrivée jusque là sans jamais en avoir eu besoin.

Pour d'autres problèmes qui ne rentrent pas dans le cadre de ce topic, je n'ai pas pu avoir accès à filezilla.

 

Existe il un autre moyen d'intégrer un logo dans l'email?

Link to comment
Share on other sites

Bah, tant que vous n'avez pas à modifier des fichiers, effectivement, il n'était d'aucune utilité.

 

Vous pouvez également normalement passer par votre console d'hébergement (cPanel ou autre, pour voir/éditer vos fichiers)

 

Non, il n'existe pas d'autre moyen vu que l'affichage du logo est géré par la classe coeur mail.php.

Link to comment
Share on other sites

  • 8 months later...

Pour la version 1.6.1.5, ça a légèrement changé, il faut commenter les lignes 314 à 316. 

 

Il faut donc remplacer 

if (isset($logo)) {
                $template_vars['{shop_logo}'] = $message->embed(Swift_Image::fromPath($logo));
            }
par

/*if (isset($logo)) {
                $template_vars['{shop_logo}'] = $message->embed(Swift_Image::fromPath($logo));
            }*/
Pour l'instant ça a l'air de bien fonctionner, je reviens aux nouvelles s'il y a un bug quelque part :) Edited by Yann74 (see edit history)
Link to comment
Share on other sites

  • 1 year later...

J'avoue, je déterre un vieux topic, mais ce problème me travaillait :)

 

Pour ma part j'ai modifié le fichier mail.php pour ne plus avoir le logo en pièce jointe lorsqu'on a supprimé la variable {shop_logo}, mais qu'il s'affiche quand même dans les mails où cette variable est présente.

Ligne 145 (version 1.4.1) remplacer:


$templateVars['{shop_logo}'] = (file_exists(_PS_IMG_DIR_.'logo_mail.jpg')) ? $message->attach(new Swift_Message_Image(new Swift_File(_PS_IMG_DIR_.'logo_mail.jpg'))) : ((file_exists(_PS_IMG_DIR_.'logo.jpg')) ? $message->attach(new Swift_Message_Image(new Swift_File(_PS_IMG_DIR_.'logo.jpg'))) : '');

par:


$templateVars['{shop_logo}'] = Tools::getShopDomain(true, true).__PS_BASE_URI__.'img/logo_mail.jpg' ;

Edit du 04/10/2012

Pour Presta 1.5 (jusqu'à 1.5.1)

remplacer:


Swift_Message_Image(new Swift_File(_PS_IMG_DIR_.Configuration::get('PS_LOGO_MAIL')))) :

((file_exists(_PS_IMG_DIR_.'logo.jpg')) ? $message->attach(new Swift_Message_Image(new Swift_File(_PS_IMG_DIR_.Configuration::get('PS_LOGO')))) : '');

par:


Swift_Message_Image(new Swift_File(_PS_IMG_DIR_.Configuration::get('PS_LOGO_MAIL')))) :

Tools::getShopDomain(true, true).__PS_BASE_URI__.'img/logo_mail.jpg' ;

Pour la 1.5.2 (ben oui autant garder ce bug, même si on met à jour les fichiers...)

commenter cette partie:


else

if (file_exists(_PS_IMG_DIR_.'logo.jpg'))

$template_vars['{shop_logo}'] = $message->attach(new Swift_Message_Image(new Swift_File(_PS_IMG_DIR_.Configuration::get('PS_LOGO'))));

Pour la 1.5.4 et 1.5.5 (vraiment têtus les zozos!) remplacez ces lignes (249 - 251)


if (isset($logo))
 $template_vars['{shop_logo}'] = $message->attach(new Swift_Message_EmbeddedFile(new Swift_File($logo), null, ImageManager::getMimeTypeByExtension($logo)));

 par:

if($template_vars['{shop_logo}'] != '') { 
    if (isset($logo))
        $template_vars['{shop_logo}'] = $message->attach(new Swift_Message_EmbeddedFile(new Swift_File($logo), null, ImageManager::getMimeTypeByExtension($logo)));
} 

Eolia

Bonjour,

 

Une idée sous prestashop 1.7?

 

Merci

Link to comment
Share on other sites

Après voir un peu cherché, j'ai trouvé la solution au problème (testé sur un mail de confirmation de commande, à voir si cela fonctionne bien pour tous les mails).

 

Testé sous PrestaShop 1.6.0.14

 

Aller à classes/Mail.php

 

Ligne 305, changer :

if (isset($logo))
$template_vars['{shop_logo}'] = $message->attach(new Swift_Message_EmbeddedFile(new Swift_File($logo), null, ImageManager::getMimeTypeByExtension($logo)));

Par :

if (isset($logo))
$template_vars['{shop_logo}'] = Tools::getShopDomain(true, true).__PS_BASE_URI__.'img/'.Configuration::get('PS_LOGO', null, null, $id_shop);

:)

Hello,

 

Une idée sous 1.7?

Link to comment
Share on other sites

Bonjour 

 

j'ai la version 1.6.0.6 et le même problème, j'ai essayé les deux méthodes et je suis passé du point d’interrogation au nom du site en lien avec la page d'accueil 

 

pouvez vous svp m'aider pour mon premier post sur le forum

Link to comment
Share on other sites

  • 7 months later...

Bonjour,

Mois aussi ce probléme!!! avec les modifs sur 1.6 cela enlève effectivement l'option image à télécharger mais l'image ne s'affiche pas et moi je souhaite l'image. !!

J'ai aussi un PS en 1.7 donc deux solutions à me fournir SVP

Link to comment
Share on other sites

  • 11 months later...

pour la 1.7.5.1

allez sur  le fichier classes/Mail.php

allez a la ligne 480 pour retrouver la ligne qui commence par

if (false !== Configuration::get('PS_LOGO_MAIL') &&

ajoutez seulement

/* 

au debut de cette ligne 480

enregistrez et c'est reglé .

tout passe en gris, jusque la ligne 492

apparemment les développeurs connaissent le bug, donc ils ont deja mis une remarque  a la ligne 492       /* don't attach the logo as */

voili voilou :-)

 

  • Like 1
Link to comment
Share on other sites

  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...