Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1833 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Envoi d'un mail en HTML avec images

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Envoi d'un mail en HTML avec images

n°1609832
Red Viper
The Hellfire Preacher
Posté le 09-09-2007 à 16:50:41  profilanswer
 

Bonjour,
 
Je mets en place actuellement une newsletter en HTML.
Je voudrais lui affecter des styles. A priori pas de problème sauf que je veux affecter une image de fond à un de mes styles. Or si je mets l'image directement dans le style, ça ne marche pas.
 
Voici un extrait de mon code qui ne marche pas :

Citation :


$msg = '<html>';
$msg .= '<head>';
$msg .= '<style type="text/css">';
 
$msg .= '.sousTitre {
font-family: "Trebuchet MS";
font-size: 12px;
font-weight: bold;
font-style: italic;
background: magenta url("cid:FondSousTitreMagentaBlanc" ) no-repeat scroll left top;
text-align: center;
color: black;}';

 
$msg .= '</style>';
$msg .= '</head>';
 
$msg .= '<body>';
$msg .= '<table>';
    $msg .= '<tr>';
        $msg .= '<td class="sousTitre">';
            $msg .= 'Mon sous titre';
        $msg .= '</td>';
    $msg .= '</tr>';
$msg .= '</table>';
$msg .= '</body>';
$msg .= '</html>';
 
 
//Images attachées : Fond Sous Titre
$fichier = "../../Images/FondSousTitreMagentaBlanc.jpg";
$fp      = fopen($fichier, "rb" );
$fichierattache = fread($fp, filesize($fichier));
fclose($fp);
$fichierattache = chunk_split(base64_encode($fichierattache));
$msg .= "--$delimiteur\r\n";
$msg .= "Content-Type: application/octet-stream; name=\"$fichier\"\r\n";
$msg .= "Content-Transfer-Encoding: base64\r\n";
$msg .= "Content-ID: <FondSousTitreMagentaBlanc>\r\n";
$msg .= "\r\n";
$msg .= $fichierattache . "\r\n";
$msg .= "\r\n\r\n";


Ce qui est étrange, c'est que ça marche si je remplace :

Citation :

$msg .= '<td class="sousTitre">';


par

Citation :

$msg .= '<td class="sousTitre" background="cid:FondSousTitreMagentaBlanc">';


Ma question : Est-on obliger de mettre la référence à l'image liée directement dans la propriété "background" de la balise "<td>", ou est-ce que c'est possible de la mettre dans le style défini ? Dans ce 2ème cas, où est mon erreur ?
 
Merci pour votre aide :jap:  

mood
Publicité
Posté le 09-09-2007 à 16:50:41  profilanswer
 

n°1609843
leflos5
On est ou on est pas :)
Posté le 09-09-2007 à 18:39:32  profilanswer
 

Tu balancerais les images encodées dans le texte. Parce que pour les mails c'est une vraie galère à avoir un truc qui marche partout. Je suis même pas sur que tu puisses envoyer ça comme ça, c'est pas un client web ;)

n°1609852
Red Viper
The Hellfire Preacher
Posté le 09-09-2007 à 19:28:20  profilanswer
 

L'image est définie comme étant un fichier joint (Tous les didacticiels que j'ai trouvés gèrent les images comme ça).
Ensuite, j'y fait référence en faisant par exemple :
<img src="cid:FondSousTitreMagentaBlanc"/> ou <td background="cid:FondSousTitreMagentaBlanc">
Il n'y a que la référence depuis un style prédéfini qui ne marche apparament pas. Par exemple :
.sousTitre {background-image: url("cid:FondSousTitreMagentaBlanc" )};
 
J'ai aussi essayer de ne pas mettre url() et aussi d'enlever les guillemets. J'aimerais savoir si quelqu'un sait si c'est possible d'affecter l'image de fond dans un style au lieu de la mettre directement dans la propriété background de <td>.
 
Merci pour vos réponses.

n°1609859
gatsu35
Blablaté par Harko
Posté le 09-09-2007 à 19:54:43  profilanswer
 

déjà on ne fait pas de CSS dans les emailing, ca ne passe quasiment nulle part, au mieux tu fous des styles en dure : style="", mais pas de classes.

n°1609913
Noisequik
Posté le 10-09-2007 à 08:59:49  profilanswer
 

Bonjour,
 
je souhaite également envoyer des mail avec images: J'ai donc suivi le tutoriel suivant :
http://www.toutestfacile.com/php/cours/mail_4.php5
 
Cependant, il y a un problème que je n'arrive pas à résoudre :
 
sur Gmail, les images ne s'affichent pas par défaut.  
Alors que si j'envoie un e-mail HTMl avec Outlook Express, les images s'affichent directement sans devoir faire de manipulations supplémentaires.
 
Comment fait ce programme ? j'ai essayé de copier/coller le code HTML généré mais cela ne fonctionne pas, il doit y avoir une astuce supplémentaire mais laquelle ??

n°1610507
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 11-09-2007 à 09:57:31  profilanswer
 

Mets tes images sur ton site web, et en URL absolues dans le mail (url(http://...image.extension)) ça allégera d'autant +1/3 le mail.

n°1610510
Noisequik
Posté le 11-09-2007 à 10:00:10  profilanswer
 

malheureusement avec cette méthode les images sont bloquées chez bon nombre de client mail :(

n°1610516
gatsu35
Blablaté par Harko
Posté le 11-09-2007 à 10:21:56  profilanswer
 

il faut que les images soient stockées sur un serveur web et que l'emailing fasse appels à ces images <img src="http://www.monserveurweb/emailing/image1.jpg" />

n°1617601
Red Viper
The Hellfire Preacher
Posté le 01-10-2007 à 19:38:25  profilanswer
 

gatsu35 a écrit :

il faut que les images soient stockées sur un serveur web et que l'emailing fasse appels à ces images <img src="http://www.monserveurweb/emailing/image1.jpg" />


Ce principe ne tient pas compte du cas où notre destinataire récupère les mails avec Outlook ou autre logiciel qui permet de consulter les mails en n'étant pas connecté à Internet.
C'est pour ça que je préfère envoyer les images en fichier joint, même si ça alourdit le mail. :/

n°1617630
Ricco
Retour au pays
Posté le 01-10-2007 à 21:52:07  profilanswer
 

Perso je me sers de http://pear.php.net/package/Mail ça fonctionne chez moi, en tout cas avec une image affiché classiquement.
Maintenant pour ton pblm ... à quoi sert le "cid:" ? Perso je crois pas que j'utilise ça.


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
mood
Publicité
Posté le 01-10-2007 à 21:52:07  profilanswer
 

n°1617758
omega2
Posté le 02-10-2007 à 11:26:25  profilanswer
 

Red Viper > Et comme ton mail contient des images, t'augmente le risque de le voir arriver dans le dossier des "courriers indésirables" voire directement à la poubelle. En plus de ça, c'est bien gentil le coup du "même si ça alourdis le mail" mais même avec une connexion haut débit, quand t'as une dizaine de gros mails sur hotmail, ça met une plombe pour les ouvrir avec outlook.
En fait, le mieux, c'est de laisser l'utilisateur choisir entre avoir les images dans le mail ou à l'extérieur même si personne ne laisse le choix en pratique :( (d'un autre côté, au vu des mails que je reçoit, à part les spams et la famille, quasiment personne ne mets les images dans le mail mais beaucoup rajoutent un "si ça s'affiche mal, cliquer ici" )

n°1620092
Red Viper
The Hellfire Preacher
Posté le 06-10-2007 à 17:21:45  profilanswer
 

Ricco a écrit :

Perso je me sers de http://pear.php.net/package/Mail ça fonctionne chez moi, en tout cas avec une image affiché classiquement.
Maintenant pour ton pblm ... à quoi sert le "cid:" ? Perso je crois pas que j'utilise ça.


 
le "cid :" est justement ce qui permet de définir quelle image en pièce jointe est utilisée.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Envoi d'un mail en HTML avec images

 

Sujets relatifs
proteger donnee programme html[HTML]: Amélioration de www.paralax.be.cx + Wordpress
[regexp] Extraire les lignes d'un tableau d'une page htmlenvoi de mail avec pièces jointes
Forcer un signetenchaînement d'images en fondu ?
Afficher du code en couleur dans une page HTML[Html/VbS] Lancer une fonction via un lien
afficher un pdf dans une page html/phpenvoi de mail html avec images
Plus de sujets relatifs à : Envoi d'un mail en HTML avec images


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR