Page 1 sur 1

envoyer un mail en html

Posté : 27 mai 2005, 16:54
par orsanton
Bonjour à tous,

Je suis vraiment débutant en PHP et j'ai besoin d'un coup de main, silvousplé. Je souhaite envoyer un mail en HTML (avec de belles images, tout ça...). Sur le Net, j'ai pu copier le code PHP qui gère ça, comme:
<?php

// Variables
$to="adresse du destinataire";
$from="De:votre adresse ici\r\n";
$from.="MIME-Version: 1.0\r\n";
$from.="Content-Type: text/html; charset=fr-ascii\r\n";
$sujet="votre sujet";
$message="<html>votre code html ici</html>";

//appel de la fonction mail (envoi)
mail($to,$sujet,$message,$from);

?>

Donc, sur ce même fichier, il faut que je fasse des changements pour l'adapter à mes besoins, comme par exemple:

$to="$_POST['to'];
ou bien
$sujet = $_POST['sujet'];

C'est bien ça ???

Bon, ensuite, j'appelle ce fichier envoi.php, je le place sur mon serveur.

Maintenant, pour l'exécuter, il faut bien créer un formulaire d'envoi (en html, par exemple) avec <form method="post" action="envoi.php">;
Et là, par exemple, je créé mes champs, comme:

Destinataire:<input type="text" name="to">

et ainsi de suite. Quand je valide, ça envoie mon mail au destinataire.
J'ai fait des essais et ça ne marche pas. Est-ce la bonne méthode ?? Il faut bien deux fichiers: un fichier PHP avec les variables et un formulaire pour envoyer les mails, non ?

D'avance, merci

Posté : 27 mai 2005, 16:58
par Cyrano
Dans l'ensemble, ton schéma est juste: tu pourrais aussi le faire sur un seul fichier, mais avec deux, c'est très bien.

Maintenant, pour comprendre pourquoi ça ne fonctionne pas, il faudrait qu'on voit ton script et éventuellement le formulaire afin d'y détecter les coquilles qui ont pu s'y gisser et bloquer le fonctionnement.

Mets nous ça ici en utilisant les boutons [ PHP ] au dessus de la zone de saisie de message pour encadrer les scripts.

Merci !

Posté : 27 mai 2005, 17:01
par orsanton
Merci Cyrano,
je fais ça tout de suite, en suivant tes instructions !

Posté : 27 mai 2005, 17:19
par orsanton
Alors voilà ce que ça donne pour le fichier "envoi.php":
<?php
 $to="$_POST['to'];  
 $sujet = $_POST['sujet'];
 $message = $_POST['message'];
 $headers = "MIME-Version: 1.0\r\n";
 $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
 $headers .= "From: Orsanton
<[email protected]>\r\n";
 $headers .= "Bcc: ".$dest."\r\n";

 mail($to, $sujet, $message, $headers);
?>
et voilà ce que ça donne pour mon formulaire d'envoi en html:

<HTML>
<HEAD>
<TITLE>formulaire d’envoi</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY bgcolor="#FFFFFF" text="#000000">
<form method="post" action="envoi.php">
Destinataire:<input type="text" name="to"><BR>
Sujet: <INPUT type="text" name="sujet"><BR>
Message: <TEXTAREA NAME="message" ROWS="30" COLS="60"></TEXTAREA><BR>
<INPUT type="submit" name="Submit" value="Envoyer">
</form>
</BODY>
</HTML>


est-ce que ça vous paraît correct ? Je vais refaire un essai.[/php]

Posté : 27 mai 2005, 17:25
par Cyrano
Ok, quelques petites erreurs dans le fichier php:
<?php
$to = $_POST['to'];  
$sujet = $_POST['sujet'];
$message = $_POST['message'];
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: Orsanton <[email protected]>\r\n";
$headers .= "Bcc: ".$dest."\r\n";

mail($to, $sujet, $message, $headers);
?>
Il y avait un " juste avant le $_POST['to'] qui mettait tout par terre et ensuite dans les headers, ça se terminait par "nr" au lieu de "\r\n".

Essaye avec ça, rien à dire sur le formulaire html :)

Ouais !!!

Posté : 27 mai 2005, 17:36
par orsanton
Ca marche !!!

Merci 1000 fois Cyrano, je suis fou de joie !

Je vais pourvoir faire moult essais, avec des images cette fois (je sais qu'il faut préciser le chemin absolu pour qu'elles apparaissent dans le mail, du genre:
http://www.monsite.com/images/maman.gif

Encore merci. PHP FRance va m'aider à étudier le PHP.

Posté : 27 mai 2005, 17:37
par Cyrano
Exactement pour les images, c'est ça.

Sinon, il est possible de les inclure, mais il faut passer par des librairies objet.... ça commence à devenir complexe.

Tu peux cliquer sur le bouton [Résolu] en haut du post :)