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 :

Problème mail pour webmail free


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 230
    Points : 122
    Points
    122
    Par défaut Problème mail pour webmail free
    Bonjour,

    J'utilise la fonction mail de PHP pour envoyer des messages.
    Je reçois bien le mail sur toutes les messageries que j'ai testé (Hotmail, OVH) mais rien n'arrive sur ma messagerie Free.

    Le mail est au format HTML et il semblerait que dès que j'enlève la balise <img> de mon message, le mail arrive.

    J'ai cherché des solutions sur internet mais je n'ai rien trouvé.

    Au niveau du format du mail, il est assez basique avec les en-têtes from et content-type.

    Quelqu'un aurait-il déjà eu ce problème ?

    Merci.

  2. #2
    Membre habitué Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Points : 178
    Points
    178
    Par défaut
    Bonjour,
    apparemment il faut signaler au serveur de mail qu'il y a des images dans ton mail grâce à l'entête Content-ID

    6.19.7.Email HTML avec des images
    Cela ressemble à l'envoi d'un mail avec un ou plusieurs fichiers joints. Il suffit simplement d'indiquer que le premier bloc est de type text/html, d'ajouter pour chaque fichier joint un entête Content-ID précisant l'identifiant du fichier dans le mail et de préciser cet identifiant dans les balises <img src="..."> en les faisant précéder de cid:.
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    <html>
    <body>
    <?php
     
    //----------------------------------
    // Construction de l'entête
    //----------------------------------
    $delimiteur = "-----=".md5(uniqid(rand()));
     
    $entete = "MIME-Version: 1.0\r\n";
    $entete .= "Content-Type: multipart/related; boundary=\"$delimiteur\"\r\n";
    $entete .= "\r\n";
     
    //--------------------------------------------------
    // Construction du message proprement dit
    //--------------------------------------------------
     
    $msg = "Je vous informe que ceci est un message au format MIME 1.0 multipart/mixed.\r\n";
     
    //---------------------------------
    // 1ère partie du message
    // Le code HTML
    //---------------------------------
    $msg .= "--$delimiteur\r\n";
    $msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
    $msg .= "Content-Transfer-Encoding:8bit\r\n";
    $msg .= "\r\n";
    $msg .= "<html><body><h1>Email HTML avec 2 images</h1>";
    $msg .= "Image 1:<img src=\"cid:image1\"><br />";
    $msg .= "Image 2:<img src=\"cid:image2\"><br /></body></html>\r\n";
    $msg .= "\r\n";
     
    //---------------------------------
    // 2nde partie du message
    // Le 1er fichier (inline)
    //---------------------------------
    $fichier = "monfichier.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: <image1>\r\n";
    $msg .= "\r\n";
    $msg .= $fichierattache . "\r\n";
    $msg .= "\r\n\r\n";
     
    //---------------------------------
    // 3ème partie du message
    // Le 2ème fichier (attachment)
    //---------------------------------
    $fichier = "monfichier2.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: <image2>\r\n";
    $msg .= "\r\n";
    $msg .= $fichierattache . "\r\n";
    $msg .= "\r\n\r\n";
     
    $msg .= "--$delimiteur\r\n";
     
    $destinataire = "testemail@lesite.com";
    $expediteur   = "moi@monsite.com";
    $reponse      = $expediteur;
    echo "Ce script envoie un mail au format HTML avec 2 images à $destinataire";
    mail($destinataire,
         "Email HTML avec 2 images",
         $msg,
         "Reply-to: $reponse\r\nFrom: $expediteur\r\n".$entete);
    ?>
    </body>
    </html>



  3. #3
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 230
    Points : 122
    Points
    122
    Par défaut
    Merci mais je viens d'y arriver à force de travail.

    Effectivement ma messagerie Free bloque apparemment les mails avec image externe.

    Il a donc fallut mettre l'image en pièce jointe en y ajoutant un Content-ID puis en le reprenant dans le source de l'image.

    Et à remplacer le content-type du mail en multipart/related.

  4. #4
    Membre habitué Avatar de Mitaka
    Profil pro
    formaTRICE en informatique
    Inscrit en
    Avril 2003
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : formaTRICE en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 192
    Points : 178
    Points
    178
    Par défaut
    j'apprécie le résumé de ma solution que tu as rédigé

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

Discussions similaires

  1. Gmail va trier vos mails pour vous : une avancée ou nouveaux problèmes en vue ?
    Par Gordon Fowler dans le forum Général Conception Web
    Réponses: 27
    Dernier message: 31/08/2010, 16h58
  2. [Mail] Problème d'envoi chez Free
    Par Djludo dans le forum Langage
    Réponses: 6
    Dernier message: 28/09/2008, 23h02
  3. [Mail] pb de lecteur mail sur webmail.free.fr
    Par pekka77 dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2007, 22h47
  4. [MySQL] problème envoi mail pour mot de passe
    Par bonsam dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 17/11/2006, 20h57
  5. [Mail] PHP et webmail Free
    Par meufeu dans le forum Langage
    Réponses: 2
    Dernier message: 30/04/2006, 21h40

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