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
Version imprimable
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
Issu des exemples de la doc officielle :
Code:
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);
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 :
Mais ça ne marche pas. Je reçois le mail vide sans la page webCode:$filename = "http://www.monsite.com/newsletter_234.php";
Pourriez-vous m'aider SVP ?
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) :
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.Code:
1
2ex. : http://www.monsite/dossierimage/monimage/cetteimage.jpg ...
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"........
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:$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.
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 :
Avec ce code, je pense que la variable $contents sera alimentée.Code:
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();
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 :
et ensuite tu fais également une version texte :Code:
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> ';
Code:
1
2
3
4
5
6
7
8
9
10 $altbody = ' Bonjour, Voici un test =========== Signature bla bla ';