Jump to content
dpm

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.

Share this post


Link to post
Share on other sites

bonjour a tous,

je me pose la même question : peut-on supprimer le logo qui se met automatiquement en pièce jointe ?

Merci

Share this post


Link to post
Share on other sites

Topic moved from English forum

Share this post


Link to post
Share on other sites

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'])); 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Merci éolia cela ma beaucoup aidé aujourd'hui merci beaucoup

  • Like 1

Share this post


Link to post
Share on other sites

je sais que je ne suis pas dans le bon post mais est ce que tu sais (pour le module d'envoie de newsletter : newsletter-v1.4) quelle est la limite d'envoie de mail par minute?

Share this post


Link to post
Share on other sites

Erf... non tu n'es pas dans le bon post.

Pour info la limite d'envoi des mails par minute est déterminée par ton hébergeur (en fait c'est plutôt par heure).

Je te conseille d'utiliser la dernière version de ce module que j'ai mis à jour ici.

Share this post


Link to post
Share on other sites

Merci pour la résolution en 1.5.4 :) J'attends de voir en 1.5.5

 Ca marche toujours pour la 1.5.5.0 le fichier n'a pas été modifié

Share this post


Link to post
Share on other sites

Merci encore pour ton aide précieuse.

Marche impec sur 1.4.9 ligne a remplacer 189 a 191

Bonne continuation.

Share this post


Link to post
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.

Edited by lordbdp (see edit history)

Share this post


Link to post
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 :)

Share this post


Link to post
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

Edited by monvidedressing (see edit history)

Share this post


Link to post
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...

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

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 !

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Merci Eolia,

 

Je cherchais une solution pour ce problème et cela fonctionne aussi sur presta 1.6.8.

Share this post


Link to post
Share on other sites

Merci Eolia,

 

Je cherchais une solution pour ce problème et cela fonctionne aussi sur presta 1.6.8.

 

Merci de l'info, je n'avais pas testé :)

Share this post


Link to post
Share on other sites

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 :)

Share this post


Link to post
Share on other sites

Pareil pour moi, à chaque mail le logo se met en pièce jointe  :huh:

Share this post


Link to post
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);

:)

Share this post


Link to post
Share on other sites

Bonjour,

 

Question de base, peut être mais sans aucun doute indispensable.

 

Comment faite vous pour vous rendre à ces lignes de code?

 

Aller à classes/Mail.php

Oui d'accords mais comment?

 

Merci à vous

Share this post


Link to post
Share on other sites

Connectez-vous par ftp à votre serveur (un logiciel comme filezilla le fait très simplement)

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

Bonjour

 

après de multiple travaux, j'ai enfin accès à mon serveur via filezilla.

 

Lorsque je tente de me connecter à classes/Mail.php

 

je reçois ce message

'/classes/Mail.php' n'existe pas ou ne peut pas être accédé.

Share this post


Link to post
Share on other sites

peut-être un problème de droits/propriétaire 

Share this post


Link to post
Share on other sites

Donc mon hébergeur me limite l'accès au serveur?

 

Je suis chez prestashop cloud.

Share this post


Link to post
Share on other sites

Ah, ben là c'est mort :( sur le cloud vous ne pouvez pas modifier les fichiers coeur, désolé...

Share this post


Link to post
Share on other sites

:blink: D'accord ba au moins c'est clair. Deux jours de recherche dans le vent ! :lol: 

 

Je nai plus qu'à changer d'hébergeur.

 

Merci quand même pour votre aide :)

Share this post


Link to post
Share on other sites

sauf que si vous voulez changer d'hébergeur Prestashop vous demandera 150€ lorsque vous voudrez récupérer votre base de données...

 

Si c'est le cas, prévenez-moi par MP, il existe d'autres solutions ;)

Share this post


Link to post
Share on other sites

Merci Eolia ;)

 

Merci Yann74

 

Le changement fonctionne nikel :)

 

Testé sur prestashop 1.6.1.1 pour un mail de confirmation d'inscription.

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Je ne soutiens pas la version 1.7, c'est une daube sans nom

Share this post


Link to post
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?

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Ca marche ! Merci beaucoup, Belinda !

Share this post


Link to post
Share on other sites

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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More