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 :

[Mail] Envoyer une page html par mail [Fait]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Points : 8
    Points
    8
    Par défaut [Mail] Envoyer une page html par mail
    Bonjour,

    Je voulais savoir si quelqu'un sait comment envoyer une page web par mail en php. L'intérêt est que la page web s'affiche directement dans le logiciel de messagerie comme c'est le cas pour toutes les newsletters.

    Merci.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 31
    Points : 31
    Points
    31

  3. #3
    Membre habitué Avatar de kodokan
    Profil pro
    Lycéen
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Points : 170
    Points
    170
    Par défaut
    @ Simmstein : tu as mis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mail($destinataire, "$objet", $message, $mail_html);
    Il vaudrais pas mieux mettre ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mail($destinataire, $objet, $message, $mail_html);
    Sinon c'est très bien ta source

  4. #4
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Oui mais attention, il risque d'avoir des surprises sur certain serveur mail ou webmail. Le mieu c'est d'utiliser les classes de htmlmimemail. Car le code la me parait bien trop léger pour affronter toutes les difficultés que le petit mail va rencontrer .

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 73
    Points
    73
    Par défaut Moi aussi ...
    Bonjour,
    Je viens juste de me casser la tête a ce sujet ... et ai réussi a réaliser ce que je voulais car il faut aussi prévoir que la longueur des lignes est limitée en caractères! Au départ je ne m'en suis pas aperçu car envoyant les mail test sur des comptes divers sur la même machine d'hébergement. Mais dès lors que j'utilisais une adresse email extérieure, le message devenait tronqué.

    Il me semble (et celà marche) nécessaire d'envoyer aussi les headers et de préciser qu'il s'agit du code html ! Tels que expliqué dans le tutoriel php sur ce site ce qui donne la commande:

    mail($destinataire, $objet, $message, $headers)

    Mais celà ne crée pas de limitation en taille des lignes! J'ai cherché toutes sortes d'astuces pour ajouter un caractère de fin de ligne, rien n'y fit ... et le <br/> n'est pas un caractère de fin de ligne ... et les \n\r non plus, pas dans un corps de message ...

    Ainsi j'ai mis une boucle comme (raccourcie pour l'exemple), qui me donnait un texte sans fin ....

    $message="Code html divers, ensuite une boucle de contenu:";
    foreach ($permanent[$membre] as $j){
    $message .= '<B>'.$x.$spc.$pays [$membre[$i]['0']].'</B>.$no.'<br/> ';
    $i++;
    }

    Que nenni, résultat: des messages tronqués.
    Pourtant la réponse je la connaissais pour l'avoir utilisé ailleurs pour la présentation d'emails ... php ajoute une fin de ligne si vous changez de ligne dans votre code! Le code qui marche est :

    foreach ($permanent[$membre] as $j){
    $message .= '<B>'.$x.$spc.$pays [$membre[$i]['0']].'</B>.$no.'<br/>
    ';
    $i++;
    }

    ou

    foreach ($permanent[$membre] as $j){
    $message .= '
    <B>'.$x.$spc.$pays [$membre[$i]['0']].'</B>.$no.'<br/>
    ';
    $i++;
    }

    Juste pour vous donner des idéees et ne pas avoir à chercher pendant des heures comme je l'ai fait,
    A+
    Rodolphe

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    En fait, je m'explique : dans le mail que je reçoit je voudrais avoir, par exemple, la page google et non pas le lien vers cette page. Il faudrait un truc dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message=http://www.google.fr;
    Mais que se soit la page qui apparaisse et non le lien. J'arrive avec des images mais c'est tout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $message .="<img src=\"http://www.google.fr/intl/fr_fr/images/logo.gif\">";

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 63
    Points : 73
    Points
    73
    Par défaut Une possible solution
    Bonjour,
    Bonne question pour laquelle la réponse exacte m'intéresse aussi !
    Il me semble que la seule possibilité ne soit la lecture du contenu de l'url par php, son traitement éventuel, ensuite joindre le résultat au message.
    genre avec commande file_get_contents
    Lu dans le manuel php:
    <?php
    $context=array('http' => array ('header'=> 'Range: bytes=1024-', ),);
    $xcontext = stream_context_create($context);
    $str=file_get_contents("http://www.fcicq.net/wp/",FALSE,$xcontext);
    ?>


    Ce qui ne veut pas dire que la page ne contient pas des interdits ou incompabilités ... ni que les liens ne soient bons ... ni que google accepte la lecture de ses pages ...

    Quelques essais et une relecture du manuel PHP s'imposent,
    Rodolphe

  8. #8
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    rebonjour,

    Je n'arrive pas a faire exactemant ce que je veux pour l'envoie de mail avec la fonction mail() de php.
    Mon probleme est que je veux inclure dans le body du mail une page php creer dynamiquement. J'ai essaye pas mal de truc don la fonction file_get_contents, le pb est que le fichier est stocke dans la variable tel quelle, le php n'est pas interprete!!!
    Voici mon code
    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
     
     
    $expediteur = ""; 
     
    // Le destinataire du mail
    $destinataire = "";   
     
     // objet du mail
    $objet = "";
     
    // le contenue du message
    //mail_client.php est le fichier qui n'ai pas interprete
    $message = file_get_contents("mail_client.php",false); 
     
    // pour pouvoir mettre du html
    $mail_html  = 'MIME-Version: 1.0' . "\r\n";
    $mail_html .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $mail_html .= "From:$expediteur" . "\r\n";
     
    // on envoit le mail
    mail($destinataire, $objet, $message, $mail_html);



    Est ce que quelqu'un aurai une astuce

    Merci bcp
    guigo

Discussions similaires

  1. Envoi par mail d'une page html (dans corps de texte)
    Par Lili120 dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 04/02/2011, 10h08
  2. Envoyer une page HTML par e-mail
    Par Alexandrebox dans le forum Langage
    Réponses: 6
    Dernier message: 11/03/2009, 21h33
  3. Comment envoyer une page web par mail
    Par zgoulanda dans le forum Débuter
    Réponses: 3
    Dernier message: 02/10/2008, 10h30
  4. [Mail] envoyer une page web par mail
    Par Zen_Fou dans le forum Langage
    Réponses: 8
    Dernier message: 06/04/2006, 18h06

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