Mail html avec images dans le corps avec Ckeditor et Phpmailer

Fermé
lapin111 Messages postés 2 Date d'inscription lundi 6 janvier 2014 Statut Membre Dernière intervention 7 janvier 2014 - 6 janv. 2014 à 15:01
lapin111 Messages postés 2 Date d'inscription lundi 6 janvier 2014 Statut Membre Dernière intervention 7 janvier 2014 - 7 janv. 2014 à 07:44
Bonjour à tous les membres de la communauté,

Je travaille sur un projet au sein de mon entreprise et je rencontre une difficulté pour envoyer des mailings (1000 contacts environ) en html.

Je souhaite envoyer ces mails depuis notre intranet en utilisant la class Phpmailer.
Pour créer le corps du mail, j'ai associé l'éditeur Wysiwyg CKEDITOR à une balise textarea pour obtenir un message en html.
J'utilise aussi le pluggin CKFINDER associé à CKEDITOR pour pouvoir uploader de nouvelles images dans mon serveur.
Tous ces éléments ajoutés fonctionnent très bien.

J'en viens enfin à ma demande :
Je sais uploader de nouvelles photos dans le serveur avec CKFINDER.
Je sais créer un mail en html avec des images et des textes dans mon éditeur wysiwyg.
Je ne sais pas comment faire en sorte que ces photos là apparaissent dans le mail que recevront mes contacts en utilisant la méthode AddEmbeddedImage et le Content-ID.

Voici un extrait de mon code pour que vous puissiez comprendre ce que je cherche à faire.

<textarea id="ckeditor" name="message">
Tel : <a href="tel:0606060606">0606060606</a><br>
Fax : <a href="tel:0606060606">0606060606</a><br>
<a href="http://www.monsite.org">http://www.monsite.org</a><br/>
<img alt="logosite" src="cid:logosite" />
<img alt="logocharte" src="cid:logocharte" />
<p style="color:red;">sous-titre</p>
</textarea>


// On créé une nouvelle instance de la classe
$mail = new PHPMailer();

// De qui vient le message, e-mail puis nom
$mail->From = $_POST['expediteur'];
$mail->FromName = $_POST['nom'];
$mail->IsHTML(true);

// Définition du sujet/objet
$mail->Subject = $_POST['sujet'];
	
$mail->AddEmbeddedImage('../../images/logosite.jpg','logosite');
$mail->AddEmbeddedImage('../../images/logocharte.jpg','logocharte');

// On définit le contenu du message
$mail->Body = stripslashes($_POST['message']);

// On définit le destinataire
$mail->AddAddress("monnom@domaine.org");	

// Pour finir, on envoi l'e-mail
$mail->send();


Merci à tous et n'hésitez pas à me poser des questions si j'ai manqué de clarté.
A voir également:

2 réponses

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
Modifié par Nhay le 6/01/2014 à 21:18
Bonjour !
Je ne sais pas comment faire en sorte que ces photos là apparaissent dans le mail que recevront mes contacts en utilisant la méthode AddEmbeddedImage et le Content-ID. 
C'est une obligation technique ta méthode AddEmbeddedImage ?

Car si tu veux simplement des images dans le corps de ton texte la balise img suffit (avec un lien absolu pour le src).
0
lapin111 Messages postés 2 Date d'inscription lundi 6 janvier 2014 Statut Membre Dernière intervention 7 janvier 2014
7 janv. 2014 à 07:44
Bonjour Nhay et merci pour ta réponse.

La méthode AddEmbeddedImage fait partie de la class PhpMailer en fait donc je pense qu'il faut l'utiliser.

Cela dit je pourrais très bien utiliser la fonction mail() classique et le problème serait le même.

En fait la difficulté n'est pas d'insérer des images dans le texte mais de faire en sorte qu'elles s'affichent aussi dans le corps du mail que j'envoie. Même avec le lien absolu, les images ne s'affichent pas dans le corps du mail envoyé si j'utilise seulement la balise img.

Merci à toi si tu as une autre idée.
0