Jump to content

Ajouter une images dans un mail


Recommended Posts

Bonjour ,

 

Pour rajouter une image dans un mail j'utilise :

 

$rdv_logo= dirname(__FILE__).'/images/monimage.jpg';
$file_attachement['content'] =file_get_contents(_PS_BASE_URL_.__PS_BASE_URI__.'modules/monmodule/images/monimage.jpg');
$file_attachement['name'] ='monimage.jpg';
$file_attachement['mime'] = ImageManager::getMimeTypeByExtension($rdv_logo);
..
code

..
Mail::Send(intval($id_lang), 'confirmation', $sujet , $donnees,$email, NULL, NULL, NULL, $file_attachement, NULL,dirname(__FILE__).'/mails/');

 

le probleme c'est que dans le corp du mail je n'ai pas d'autre choix que de mettre un src="monimage.jpg"

(en passant par une variable {monimage} par exemple )

 

Mais par mail l'identifiant de l'image devrais être coder a peut pres comme ca : [email protected]

 

Si vous regarder les images reçus dans les mail , c'est effectivement ce genre de code que l'on trouve derrière le src soit src="cad:[email protected]"

 

C'est d’ailler la solution qui fonctionne le mieux pour de nombreuse boite au lettre .

Est ce que vous avez une idée pour récupérer cet identifiant avant d'envoyer le mail ?

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

Bonjour,

Normalement pour une image soit tu indiques l'url réel de ton image c'est à dire http://monsite/modul...s/monimage.jpg.

Soit tu utilises swift pour emporter l'image directement dans le mail. Mais je ne crois pas que cela soit prévu avec la fonction Mail::send de prestashop. IL faudrait donc le modifier pour avoir quelque chose comme ça :

 

$cid = $message->embed(Swift_Image::fromPath('image.png'));

et ensuite tu envoies le $cid avec une variable dans le template de ton mail que tu rècupère dans le template comme cela :

 

<img src="{cid}" alt="Image" />

 

L'autre solution est d'encodée l'image en base 64 de l'envoyer avec une variable dans le template et d'utiliser une data uri pour afficher l'image.

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

  • 2 weeks later...

Merci de l'info ,

Du coup j'ai overridé la classe mail pour pouvoir passer des image et utilisé le cid.

j'ai aussi demander l'update a l'equipe de prod de prestashop car je trouve que ce serais quant même bien de l'avoir en natif :o)

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