You are not allowed to do this.
Envoi de mail en php !
Dernière réponse : dans Programmation
Bonjour,
Quelqu'un pourrait esseyer de m'expliquer comment envoyer un mail avec php ?
J'ai esseyé plusieurs tutoriaux mais étant novice en la matière j'ai rien compris
Je sais qu'il fait faire un fichier php avec ça..
<?php
//-----------------------------------------------
//DECLARE LES VARIABLES
//-----------------------------------------------
$destinataire='mail_destinataire@fai.fr';
$email_expediteur='votre_mail@fai.fr';
$email_reply='email_de_reponse@fai.fr';
$message_texte='Bonjour,'."\n\n".'Voici un message au format texte';
$message_html='<html>
<head>
<title>Titre</title>
</head>
<body>Test de message</body>
</html>';
//-----------------------------------------------
//GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
//-----------------------------------------------
$frontiere = '-----=' . md5(uniqid(mt_rand()));
//-----------------------------------------------
//HEADERS DU MAIL
//-----------------------------------------------
$headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
$headers .= 'Return-Path: <'.$email_reply.'>'."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"';
//-----------------------------------------------
//MESSAGE TEXTE
//-----------------------------------------------
$message = 'This is a multi-part message in MIME format.'."\n\n";
$message .= '--'.$frontiere.'--'."\n";
$message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_texte."\n\n";
//-----------------------------------------------
//MESSAGE HTML
//-----------------------------------------------
$message .= '--'.$frontiere.'--'."\n";
$message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_html."\n\n";
$message .= '--'.$frontiere.'--'."\n";
if(mail($destinataire,$sujet,$message,$headers))
{
echo 'Le mail a été envoyé';
}
else
{
echo 'Le mail n\'a pu être envoyé';
}
?>
Mais à part ça..
Merci!
Quelqu'un pourrait esseyer de m'expliquer comment envoyer un mail avec php ?
J'ai esseyé plusieurs tutoriaux mais étant novice en la matière j'ai rien compris
Je sais qu'il fait faire un fichier php avec ça..
<?php
//-----------------------------------------------
//DECLARE LES VARIABLES
//-----------------------------------------------
$destinataire='mail_destinataire@fai.fr';
$email_expediteur='votre_mail@fai.fr';
$email_reply='email_de_reponse@fai.fr';
$message_texte='Bonjour,'."\n\n".'Voici un message au format texte';
$message_html='<html>
<head>
<title>Titre</title>
</head>
<body>Test de message</body>
</html>';
//-----------------------------------------------
//GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
//-----------------------------------------------
$frontiere = '-----=' . md5(uniqid(mt_rand()));
//-----------------------------------------------
//HEADERS DU MAIL
//-----------------------------------------------
$headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
$headers .= 'Return-Path: <'.$email_reply.'>'."\n";
$headers .= 'MIME-Version: 1.0'."\n";
$headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"';
//-----------------------------------------------
//MESSAGE TEXTE
//-----------------------------------------------
$message = 'This is a multi-part message in MIME format.'."\n\n";
$message .= '--'.$frontiere.'--'."\n";
$message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_texte."\n\n";
//-----------------------------------------------
//MESSAGE HTML
//-----------------------------------------------
$message .= '--'.$frontiere.'--'."\n";
$message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
$message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
$message .= $message_html."\n\n";
$message .= '--'.$frontiere.'--'."\n";
if(mail($destinataire,$sujet,$message,$headers))
{
echo 'Le mail a été envoyé';
}
else
{
echo 'Le mail n\'a pu être envoyé';
}
?>
Mais à part ça..
Merci!
Autres pages sur : envoi mail php
Lassé par la pub ? Créez un compte
Ah ok
et alors tu y mettrais quoi dans le document html?
du genre..
<Form name="Contact" action="SendContact.php" method="POST">
<Table border=0 cellspacing=0 cellpadding=0 class="Texte">
<Tr>
<Td>Sujet du message:<Br>
<input name="Sujet" size=54></Td>
</Tr>
<Tr>
<Td>Votre message ou question:<Br>
<Textarea name="Message" cols=56 rows=5></Textarea></Td>
</Tr>
<Tr>
<Td>Votre adresse e-mail:<Br>
<input name="EMail" size=54></Td>
</Tr>
<Tr>
<Td>Vos nom et prénom:<Br>
<input name="Nom" size=54></Td>
</Tr>
<Tr>
<Td>Votre numéro de téléphone:<Br>
<input name="Telephone" size=54></Td>
</Tr>
<Tr>
<Td height=15>
</Td>
</Tr>
<Tr>
<Td align=center><Input type="submit" value="ENVOYER" style="text-align:center;">
</Tr>
</Table>
</Form>
Avec ça je reçois un message mais sans rien..
et alors tu y mettrais quoi dans le document html?
du genre..
<Form name="Contact" action="SendContact.php" method="POST">
<Table border=0 cellspacing=0 cellpadding=0 class="Texte">
<Tr>
<Td>Sujet du message:<Br>
<input name="Sujet" size=54></Td>
</Tr>
<Tr>
<Td>Votre message ou question:<Br>
<Textarea name="Message" cols=56 rows=5></Textarea></Td>
</Tr>
<Tr>
<Td>Votre adresse e-mail:<Br>
<input name="EMail" size=54></Td>
</Tr>
<Tr>
<Td>Vos nom et prénom:<Br>
<input name="Nom" size=54></Td>
</Tr>
<Tr>
<Td>Votre numéro de téléphone:<Br>
<input name="Telephone" size=54></Td>
</Tr>
<Tr>
<Td height=15>
</Td>
</Tr>
<Tr>
<Td align=center><Input type="submit" value="ENVOYER" style="text-align:center;">
</Tr>
</Table>
</Form>
Avec ça je reçois un message mais sans rien..
Salut,
Ce qui va être affiché dans le message va être contenu dans les variables "$message_texte" et "$message_html". T'a juste à les modifier pour faire afficher ce que tu veux. Si tu reçois rien c'est normal, je pense que t'as pas du modifier la valeur de la variable $message_html par exemple ou qu'il y a une erreur dans le code. Il suffit de mettre le code que tu veux dedans pour que ta boîte mail l'affiche.
Mais là faudra vérifier mais je crois que certaines boîtes aux lettres n'aiment pas trop les mail contenant de l'html. En tout cas, commence par changer la valeur de ces variables. Elles sont déclarées en haut de page, le reste c'est du traitement pour envoyer le mail si je ne m'abuse
Bon courage !
@+
Ce qui va être affiché dans le message va être contenu dans les variables "$message_texte" et "$message_html". T'a juste à les modifier pour faire afficher ce que tu veux. Si tu reçois rien c'est normal, je pense que t'as pas du modifier la valeur de la variable $message_html par exemple ou qu'il y a une erreur dans le code. Il suffit de mettre le code que tu veux dedans pour que ta boîte mail l'affiche.
Mais là faudra vérifier mais je crois que certaines boîtes aux lettres n'aiment pas trop les mail contenant de l'html. En tout cas, commence par changer la valeur de ces variables. Elles sont déclarées en haut de page, le reste c'est du traitement pour envoyer le mail si je ne m'abuse
Bon courage !
@+
j'ai un .php plus simple maintenant..
<?php
$headers ='From: "nom"<...>'."\n";
$headers .='Reply-To: '...'."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
if(mail('mail', 'sujet', 'sessage', $headers))
{
echo 'Le message a bien été envoyé';
}
else
{
echo 'Le message n\'a pu être envoyé';
}
?>
mais comment faire la relation entre 'mail', 'sujet' et 'message' avec les textarea du .html...?
Car je reçois un message intitulé "nom", avec comme sujet "sujet" et comme message "message"
<?php
$headers ='From: "nom"<...>'."\n";
$headers .='Reply-To: '...'."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
if(mail('mail', 'sujet', 'sessage', $headers))
{
echo 'Le message a bien été envoyé';
}
else
{
echo 'Le message n\'a pu être envoyé';
}
?>
mais comment faire la relation entre 'mail', 'sujet' et 'message' avec les textarea du .html...?
Car je reçois un message intitulé "nom", avec comme sujet "sujet" et comme message "message"
Oui c'est ce que tu dois modifier.
Ligne1 : 'From: "nom" <...>
A la place de nom tu mets ce que tu veux..
A un endroit tu dois avoir la déclaration des variables "sujet" et "message". Il suffit de mettre ce que tu veux dedans pour que ça s'affiche dans ton message.
Par exemple : $message = "bonjour, bienvenue sur mon site";
$sujet = "inscription";
Ligne1 : 'From: "nom" <...>
A la place de nom tu mets ce que tu veux..
A un endroit tu dois avoir la déclaration des variables "sujet" et "message". Il suffit de mettre ce que tu veux dedans pour que ça s'affiche dans ton message.
Par exemple : $message = "bonjour, bienvenue sur mon site";
$sujet = "inscription";
De cette manière ?
<?php
$headers ='From: "nom"<>'."\n";
$headers .='Reply-To: '."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
$message = $_POST['Message'];
$mail = $_POST['mail'];
$sujet = $_POST['sujet'];
if(mail('', 'sujet', 'Message', $headers))
{
echo 'Le message a bien été envoyé';
}
else
{
echo 'Le message n\'a pu être envoyé';
}
?>
Parce que ça ne change absolument rien...
Pourtant le noms correspondent !
<?php
$headers ='From: "nom"<>'."\n";
$headers .='Reply-To: '."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
$message = $_POST['Message'];
$mail = $_POST['mail'];
$sujet = $_POST['sujet'];
if(mail('', 'sujet', 'Message', $headers))
{
echo 'Le message a bien été envoyé';
}
else
{
echo 'Le message n\'a pu être envoyé';
}
?>
Parce que ça ne change absolument rien...
Pourtant le noms correspondent !
Re,
Je crois que l'erreur vient du fait que tu envoies les mots 'Message' et 'sujet' au lieu d'envoyer les variables. En remplaçant 'sujet' et 'Message' par $sujet et $message ça devrait fonctionner.
Sinon, essaie de t'inspirer de ce code. Il devrait te mettre sur la bonne voie, sinon donne moi tout ton code et je regarde de plus près.
Bon courage !
Je crois que l'erreur vient du fait que tu envoies les mots 'Message' et 'sujet' au lieu d'envoyer les variables. En remplaçant 'sujet' et 'Message' par $sujet et $message ça devrait fonctionner.
Sinon, essaie de t'inspirer de ce code. Il devrait te mettre sur la bonne voie, sinon donne moi tout ton code et je regarde de plus près.
Bon courage !
<?php //Déclaration des variables //Attention de bien mettre les mêmes noms de champs que dans ta page html où se trouve ton formulaire $email = $_POST['mail']; $message = $_POST['message']; $titreMessage = $_POST['sujet']; $expediteur = 'From: "nomQueTuVeux" <me@localhost.com>'."\n"; $expediteur .= "Content-type: text/html; charset= iso-8859-1\n"; //Changement des valeurs de php.ini ini_set('SMTP', 'smtp.adresse.fr'); ini_set('sendmail_from', 'toto@toto.fr'); if (mail($email, $titreMessage, $message, $expediteur)) { echo '<p>Votre mail a bien été envoyé</p>'; } else { echo 'Erreur : echec lors de l\'envoi du mail ! veuillez vous ré-inscrire'; } ?>
En tout cas merci de m'aider ^^
Voilà, m'en sortant vraiment pas je vai te donner le tout..
ça c'est du coté html:
<Form name="mail" action="send.php" method="POST">
<Table border=0 cellspacing=0 cellpadding=0 class="Texte">
<Tr>
<Td height="83"><div align="center"><span class="Style20">Sujet:
</span><Br>
<input name="titreMessage" size=54 />
</div></Td>
</Tr>
<Tr>
<Td><div align="center"><span class="Style22">Votre message:</span><br />
<textarea name="message" cols=56 rows=5></textarea>
<Br>
</div></Td>
</Tr>
<Tr>
<Td><div align="center"><span class="Style22">Votre mail:</span><Br>
<input name="email" size=54>
</div></Td>
</Tr>
<Tr> </Tr>
<Tr>
<Td align=center><br /><Input type="submit" value="ENVOYER" style="text-align:center;"> </Tr>
</Table>
</Form>
et ça du coté php..
<?php
$email = $_POST['mail'];
$titreMessage = $_POST['sujet'];
$message = $_POST['Message'];
$headers ='From: "nom"<moi@fai.fr>'."\n";
$headers .='Reply-To: moi@fai.fr'."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
if(mail($email, $titreMessage, $message, $headers))
{
echo 'Le message a bien été envoyé';
}
else
{
echo 'Echec';
}
?>
Voilà..
Voilà, m'en sortant vraiment pas je vai te donner le tout..
ça c'est du coté html:
<Form name="mail" action="send.php" method="POST">
<Table border=0 cellspacing=0 cellpadding=0 class="Texte">
<Tr>
<Td height="83"><div align="center"><span class="Style20">Sujet:
</span><Br>
<input name="titreMessage" size=54 />
</div></Td>
</Tr>
<Tr>
<Td><div align="center"><span class="Style22">Votre message:</span><br />
<textarea name="message" cols=56 rows=5></textarea>
<Br>
</div></Td>
</Tr>
<Tr>
<Td><div align="center"><span class="Style22">Votre mail:</span><Br>
<input name="email" size=54>
</div></Td>
</Tr>
<Tr> </Tr>
<Tr>
<Td align=center><br /><Input type="submit" value="ENVOYER" style="text-align:center;"> </Tr>
</Table>
</Form>
et ça du coté php..
<?php
$email = $_POST['mail'];
$titreMessage = $_POST['sujet'];
$message = $_POST['Message'];
$headers ='From: "nom"<moi@fai.fr>'."\n";
$headers .='Reply-To: moi@fai.fr'."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
if(mail($email, $titreMessage, $message, $headers))
{
echo 'Le message a bien été envoyé';
}
else
{
echo 'Echec';
}
?>
Voilà..
Re,
Voilà le code qui fonctionne chez moi :
page HTML test.html :
page PHP send.php :
Le mail s'envoie bien par contre il file dans la boîte de courriers indésirables. Ça doit venir de ma boîte hotmail, après il ira dans la boîte de réception. T'as plus qu'à modifier le SMTP et à refaire la décoration de ta page HTML et ça sera nickel.
@+
Voilà le code qui fonctionne chez moi :
page HTML test.html :
<html> <body> <form method="post" action="send.php"> <label for="mail">Mail : <input type="text" name="mail" id="mail" /></label> <label for="sujet">Sujet : <input type="text" name="sujet" id="sujet" /></label> <label for="message">Message <input type="textarea" name="message" id="message" /></label> <input type="submit" name="connexion" value="Envoyer" /> </form> </Form> </body> </html>
page PHP send.php :
<?php $email = $_POST['mail']; $sujet = $_POST['sujet']; //Ici j'ai enlevé la majuscule pour éviter les erreurs $message = $_POST['message']; $headers ='From: "nom"<moi@fai.fr>'."\n"; $headers .='Reply-To: moi@fai.fr'."\n"; $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n"; $headers .='Content-Transfer-Encoding: 8bit'; //Là tu changes le SMTP, tu mets le tiens, celui de ton FAI par exemple ini_set('SMTP', 'smtp.orange.fr'); ini_set('sendmail_from', 'toto@toto.fr'); if(mail($email, $sujet, $message, $headers)) { echo 'Le message a bien été envoyé'; } else { echo 'Echec'; } ?>
Le mail s'envoie bien par contre il file dans la boîte de courriers indésirables. Ça doit venir de ma boîte hotmail, après il ira dans la boîte de réception. T'as plus qu'à modifier le SMTP et à refaire la décoration de ta page HTML et ça sera nickel.
@+
Il suffit de placer de l'html à la place du message. Si c'est cette partie que tu veux modifier, tu places ton code html dans le echo (ligne 17 dans mon code).
Pour ajouter deux textarea, tu commences par en créer un autre dans la page html. Tu l'appelle $message2 par exemple.
Voilà à quoi pourrait ressembler le code :
<?php
//Tu récupères tes deux variables de ton formulaire
$message = $_POST['message'];
$message2 = $_POST['message2'];
//Ensuite on fait une concaténation pour assembler les deux bouts et normalement ça marche
$messageEntier = $message.$message2;
?>
Pour ajouter deux textarea, tu commences par en créer un autre dans la page html. Tu l'appelle $message2 par exemple.
Voilà à quoi pourrait ressembler le code :
<?php
//Tu récupères tes deux variables de ton formulaire
$message = $_POST['message'];
$message2 = $_POST['message2'];
//Ensuite on fait une concaténation pour assembler les deux bouts et normalement ça marche
$messageEntier = $message.$message2;
?>
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumTester l'envoie d'un e-mail en php (localhost)
- Forumcomment envoyer un mail en php?
- ForumEnvoyer un e-mail a plusieurs personnes (PHP)
- ForumEnvoyer 1500 mails en plusieurs fois [PHP]
- ForumEnvoi de mail autmatique, virus
- SolutionsEnvoi fichier joint via formulaire [PHP]
- SolutionsProblème envoi mail avec pièces jointes
- SolutionsEnvoi mail avec incredimail
- SolutionsScript d'envoi de mail
- Voir plus