IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[E-mail] Image intégrée dans e-mail en html


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut [E-mail] Image intégrée dans e-mail en html
    Bonsoir,
    j'envoie un email html via la la fonction mail. Pas de problème avec la construction des entêtes, ni avec les pièces jointes. Lorsque j'intègre une image sous la forme <img src="data:image/png;base64,...">, (voir le fichier html ici http://test03.christophe-charron.org...e_integre.html ou le même sous forme texte http://test03.christophe-charron.org...ge_integre.txt)
    je constate un mauvais affichage dans le webmail gmail http://test03.christophe-charron.org...ail_pas_ok.png, un bon affichage dans le webmail orange http://test03.christophe-charron.org.../orange_ok.png, un affichage mitigé dans thunderbird http://test03.christophe-charron.org...b_sais_pas.png. J'avais pensé au chunk_split à faire ou pas (je je fais pour les pièces jointes mais pas pour le reste du message) mais cela ne change rien.
    Avez-vous des idées pour avoir un affichage systématique de l'image ? Dois-je faire référence, dans l'entête, à la RFC (je ne sais plus laquelle qui régit ce type d'image ?)

    D'avance merci pour vos conseils.

  2. #2
    Membre confirmé Avatar de Christophe Charron
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 920
    Points : 606
    Points
    606
    Par défaut
    Bonsoir,
    j'ai finalement contourné le problème qui n'en était pas un. Je pense que le webmail d'Orange est laxiste, trop d'ailleurs. J'ai donc sorti du code html les images encodées et je les ai mises à la fin du message.

    Voici le code qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    //  On traite des éventuelles images intégrées dans le message html
    $vl_c_images_integrees="$eol$eol";
    $motif='@src="data:image/;base64,([[:print:]]+)"@im';
    preg_match_all($motif,$vl_c_message,$preg_res);
    $t_base64_brut[0] = array();
    $t_base64_nett[0] = array();
    $t_cid[0] = array();
    $i=0;
    foreach( $preg_res[0] as $base64 ) {
      if(!in_array($base64,$t_base64_brut)) {
        $id=md5(uniqid(rand())).$_SERVER['SERVER_NAME'];
        $t_base64_brut[$i]=$base64;
        $t_cid[$i]='src="cid:'.$id.'"/';
        $t_base64_nett[$i]=substr($base64, 24);
        $t_base64_nett[$i]=substr($t_base64_nett[$i],0,-1);
        $mabelleimage=chunk_split($t_base64_nett[$i]);
        $vl_c_images_integrees.="--$vl_c_boundary$eol";
        $vl_c_images_integrees.="Content-Type: application/octet-stream; name=\"raf\"$eol";
        $vl_c_images_integrees.="Content-Transfer-Encoding: base64$eol";
        $vl_c_images_integrees.="Content-ID: <$id>$eol";
        $vl_c_images_integrees.=$eol;
        $vl_c_images_integrees.=$mabelleimage.$eol;
        $vl_c_images_integrees.=$eol.$eol;
        $i++;
      }
    }
    $vl_c_message=str_replace($t_base64_brut,$t_cid,$vl_c_message);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Envoi d'un document en mail. (code VB avec titre et texte dans le mail)
    Par toutoune95800 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/01/2014, 17h39
  2. Image qui ne s'affiche pas dans un mail
    Par wolf001 dans le forum Débuter
    Réponses: 1
    Dernier message: 20/06/2009, 22h44
  3. [Mail] Faire figurer des images dans un mail
    Par JeanMi66 dans le forum Langage
    Réponses: 4
    Dernier message: 04/12/2005, 22h49
  4. [Librairies] Inclusion d'images dans un mail
    Par peck dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/11/2005, 09h46
  5. Réponses: 2
    Dernier message: 05/10/2004, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo