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 :

Bannière dans mail PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    poireau
    Inscrit en
    Juin 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : poireau

    Informations forums :
    Inscription : Juin 2008
    Messages : 98
    Par défaut Bannière dans mail PHP
    Bonjour

    J'ai trouvé, par votre intermédiaire, et juste un petit peu adapté un script me permettant d'envoyer des pièces jointes dans un mail . Cela fonctionne très bien, sauf quelques petits détails de mise en page encore à parfaire, mais ... j'aurais souhaité ajouter , en tête de mail, une bannière (logo) ma_bannière.jpg et là, je ne sais pas du tout comment procéder ..

    Mon niveau de développeur est proche du premier barreau de l'échelle s'il en est une ..!

    merci pour vos conseils bien intentionnés

    mon code actuel
    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
    <?php 
    // liste d'images à envoyer
    $files = array("a-bicyclette-image1mi.jpg","a-bicyclette-image2mi.jpg");
     
    //éléments de l'email : to, from, subject, header
    $to = "dest@hotmail.fr";
    $from = "mau@hotmail.fr";
    $subject ="pieces jointes";
    $message = "essai d'envoi de newsletter avec pièces jointes";
    $headers = "From: $from";
     
    // boundary
    $semi_rand = md5(time());
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
     
    // infos pour les pièces jointes
    $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
     
    // multipart boundary
    $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n";
    $message .= "--{$mime_boundary}\n";
     
    // préparation des pièces jointes
     
    for($x=0;$x<count($files);$x++){
        $file = fopen($files[$x],"rb");
        $data = fread($file,filesize($files[$x]));
        fclose($file);
        $data = chunk_split(base64_encode($data));
        $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$files[$x]\"\n" .
        "Content-Disposition: attachment;\n" . " filename=\"$files[$x]\"\n" .
        "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
        $message .= "--{$mime_boundary}\n";
    }
     
    // send
     
    $ok = @mail($to, $subject, $message, $headers);
    if ($ok) {
        echo "<p>mail sent to $to!</p>";
    } else {
        echo "<p>mail could not be sent!</p>";
    }
     
    ?>

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Bonjour,

    Le plus simple est d'héberger l'image quelque part de renseigner l'URL comme pour n'importe quelle balise img :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="http://domain.tld/liens/vers/image.ext" alt="Mettez peut-être quelque chose ici" />

    Pensez peut-être à utiliser l'attribut ALT pour afficher un texte par défaut.
    En effet, les clients email (Gmail, Outlook, etc) ne chargent pas les images par défaut, il peut donc parfois être bon d'ajouter l'attribut ALT afin que le texte (ou une partie) contenu dans l'image apparaisse directement.

  3. #3
    Membre confirmé
    Profil pro
    poireau
    Inscrit en
    Juin 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : poireau

    Informations forums :
    Inscription : Juin 2008
    Messages : 98
    Par défaut oui .. mais
    mais où placer cette balise
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="http://baeb.fr/image.jpg" alt="image baeb" />
    dans mon script ?
    lorsque je la mets dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message = "<img src="http://baeb.fr/image.jpg" alt="image baeb" />essai d'envoi de newsletter avec pièces jointes";
    , je reçois l'adresse sur le mail mais pas l'image..

  4. #4
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    Il s'agit simplement d'HTML.... Vous devez placer la balise <img /> là où vous souhaitez que l'image apparaisse.

    Comme je l'ai dit, par défaut, vous ne devriez pas voir l'image mais une option (en haut habituellement) qui demande si vous souhaitez afficher les images.

    De plus, le lien que vous renseignez n'est pas correct, si on le suit, il y a une redirection qui s'effectue et on retourne à la homepage => http://baeb.fr/image.jpg

  5. #5
    Membre confirmé
    Profil pro
    poireau
    Inscrit en
    Juin 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : poireau

    Informations forums :
    Inscription : Juin 2008
    Messages : 98
    Par défaut script en php
    je ne sais pas , dans mon script , à quel endroit inserer la balise image
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="http://baeb.fr/image.jpg" alt="image baeb"/>
    (qui ne vous était pas visible car en local pour mes essais) pour qu'elle apparaisse en début de mail .. ou qu'elle apparaisse, tout simplement ...

    en la mettant au début de $message elle apparait en adresse texte et ne laisse aucune option pour la charger
    les autres images venant de l'array $files apparaissent parfaitement et directement dans le mail reçu

    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
    <?php 
    // liste d'images à envoyer
    $files = array("a-bicyclette-image1mi.jpg","a-bicyclette-image2mi.jpg");
     
    //éléments de l'email : to, from, subject, header
    $to = "dest@hotmail.fr";
    $from = "mau@hotmail.fr";
    $subject ="pieces jointes";
    $message = "essai d'envoi de newsletter avec pièces jointes";
    $headers = "From: $from";
     
    // boundary
    $semi_rand = md5(time());
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
     
    // infos pour les pièces jointes
    $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
     
    // multipart boundary
    $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n";
    $message .= "--{$mime_boundary}\n";
     
    // préparation des pièces jointes
     
    for($x=0;$x<count($files);$x++){
        $file = fopen($files[$x],"rb");
        $data = fread($file,filesize($files[$x]));
        fclose($file);
        $data = chunk_split(base64_encode($data));
        $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$files[$x]\"\n" .
        "Content-Disposition: attachment;\n" . " filename=\"$files[$x]\"\n" .
        "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
        $message .= "--{$mime_boundary}\n";
    }
     
    // send
     
    $ok = @mail($to, $subject, $message, $headers);
    if ($ok) {
        echo "<p>mail sent to $to!</p>";
    } else {
        echo "<p>mail could not be sent!</p>";
    }?>

  6. #6
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    je ne sais pas , dans mon script , à quel endroit inserer la balise image
    Comme je l'ai dit, il s'agit simplement d'HTML. Si vous souhaitez que votre image apparaisse en haut, vous la placez en haut dans le code, si vous la voulez en bas, vous la placez en bas dans le code.
    Après, il faut différencier le placement d'une image dans un mail et une pièce jointe. La méthode que je vous donne ici est la plus simple à mettre en place, mais il faut évidemment que vous donniez des chemins corrects aux images.

    Vous avez réalisé un seul test, et sans que l'image n'existe en ligne. Réessayez avec le bout de code que vous avez montré tout à l'heure, et ça devrait fonctionner cette fois.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $message = "<img src="http://baeb.fr/image.jpg" alt="image baeb" />essai d'envoi de newsletter avec pièces jointes";

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

Discussions similaires

  1. lien href dans mail php tronqué
    Par serna dans le forum Langage
    Réponses: 3
    Dernier message: 29/06/2013, 08h46
  2. Problème d'affichage d' id mysql dans mail php
    Par ghislaingaudin dans le forum Langage
    Réponses: 8
    Dernier message: 20/05/2012, 16h43
  3. Problème de syntaxe javascript dans mail PHP
    Par kck61 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/11/2011, 11h44
  4. Problème de pièce jointe pdf dans mail php
    Par pcleder dans le forum Langage
    Réponses: 0
    Dernier message: 16/04/2010, 15h32
  5. Problème de pièce jointe pdf dans mail php
    Par pcleder dans le forum Langage
    Réponses: 0
    Dernier message: 16/04/2010, 15h13

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