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 :

Envoyer une page HTML par e-mail


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut Envoyer une page HTML par e-mail
    Bonjour,

    J'ai une page html qui existe en ligne.
    J'aimerais que cette page qui est en ligne soit envoyée par mail et que la page s'affiche directement à la place du message.

    Comment faire?

    Merci bcp pour votre aide
    Je sais que je ne sais rien

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 281
    Points
    281
    Par défaut
    Issu des exemples de la doc officielle :
    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
    // Lit un fichier, et le place dans une chaîne
    $filename = "/usr/local/something.txt";
    $handle = fopen($filename, "r");
    $contents = fread($handle, filesize($filename));
    fclose($handle);
     
    // Plusieurs destinataires
         $to  = 'aidan@example.com' . ', '; // notez la virgule
         $to .= 'wez@example.com';
     
         // Sujet
         $subject = 'Calendrier des anniversaires pour Août';
     
         // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
         $headers  = 'MIME-Version: 1.0' . "\r\n";
         $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
     
         // En-têtes additionnels
         $headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
         $headers .= 'From: Anniversaire <anniversaire@example.com>' . "\r\n";
         $headers .= 'Cc: anniversaire_archive@example.com' . "\r\n";
         $headers .= 'Bcc: anniversaire_verif@example.com' . "\r\n";
     
         // Envoi
         mail($to, $subject, $contents, $headers);

  3. #3
    Membre habitué Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Points : 153
    Points
    153
    Par défaut
    bonsoir,

    Merci beaucoup pour ta réponse
    J'ai fait la même chose en remplançant le lien du fichier par celui de la page de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $filename = "http://www.monsite.com/newsletter_234.php";
    Mais ça ne marche pas. Je reçois le mail vide sans la page web

    Pourriez-vous m'aider SVP ?
    Je sais que je ne sais rien

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour (bonsoir) :
    si c'est pour une newsletter par exemple, tu peux recuperer le code html via le code source.
    Il faut notamment recuperer le chemin complet des images (pour l'integrer dans le message de l'e-mail) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ex. :
    http://www.monsite/dossierimage/monimage/cetteimage.jpg ...
    Ensuite, tu copies ce code source (dans une page de traitement), pour le transformer en chaine (avec une fonction pour supprimer/remplacer les tab, retour a la ligne, caracteres reservés, ...) pour l'inserer dans le corps de l'e-mail.

    Je sais, ce n'est pas tres clair ... il est tard ...

    En fait, je suis en train de faire la meme chose, mais en ASP (pour la configuration de la mise en page d'une newsletter) !

    Désolé si je suis a cote de la plaque !

    Ps : j'aime bien ton slogan : "Je sais que je ne sais rien"
    Jean Gabin le "chantait" (en slam, bien avant Grand-Corps-Malade) :
    "Quand j'étais jeune, je disais "je sais, je sais".........
    Aujourd'hui, .......... je ce que sais : je sais que je ne sais rien"........
    Dernière modification par Invité ; 11/03/2009 à 02h22.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Une autre solution serait de "copier" le "code source" de la page .php dans une page .txt (en enlevant ici aussi les tab, sauts de ligne, caracteres reserves, ...)

    Et alors, il te suffira de faire appel a la page .txt (voir code plus haut) :
    au lieu de :
    $filename = "http://www.monsite.com/newsletter_234.php";
    tu mettras :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $filename = "http://www.monsite.com/newsletter_234.txt";

    Pour ma part (newsletter), j'utilise un "corps" de message en 3 parties :
    - header
    - contenu
    - footer

    - header : tout le code html qui sera avant le contenu
    - contenu : le contenu de la newsletter (code html "copié-collé", ou ecrit avec mise en page wysiwyg)
    - footer : tout le code html qui sera apres le contenu

    Pour toutes les newsletters, les "header" (logo, banniere, ...) et "footer" (adresse, infos generales, desinscription, ...) sont les meme.
    Seul le "contenu" varie.
    Dernière modification par Invité ; 11/03/2009 à 02h23.

  6. #6
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Bonjour,

    Je pense que ton problème, c'est que tu lis le contenu d'une page php sans l'interpréter.

    Est-ce qu'un truc comme ça ne serait pas mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Interprète un fichier, et le place dans le buffer
    ob_start();
    require "newsletter_234.php";
    $contents = ob_get_contents();
    ob_end_clean();
    Avec ce code, je pense que la variable $contents sera alimentée.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  7. #7
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Utilise la classe phpmailer et ensuite suffit de déclarer le body avec ton code source auquel tu auras préalablement remplacé les ' par des \'
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $body = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
    	<title>Untitled</title>
    </head>
    <body>
     
    </body>
    </html>
    ';
    et ensuite tu fais également une version texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $altbody = '
    Bonjour,
     
    Voici un test
     
    ===========
    Signature
    bla bla
    ';
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

Discussions similaires

  1. Comment envoyer une page web par mail
    Par zgoulanda dans le forum Débuter
    Réponses: 3
    Dernier message: 02/10/2008, 09h30
  2. [Mail] Envoyer une page html par mail
    Par Schlapp67 dans le forum Langage
    Réponses: 7
    Dernier message: 20/10/2006, 18h16
  3. [Mail] envoyer une page web par mail
    Par Zen_Fou dans le forum Langage
    Réponses: 8
    Dernier message: 06/04/2006, 17h06

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