Envoyer des courriels
Résolu
ldlouis
Messages postés
5
Statut
Membre
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
J'ai un formulaire avec un bouton option afin de sélectionner un département.
J'aimerais que le département sélectionné reçoit le courriel.
Merci
Voici mon php.
<?php
/*
THIS FILE USES PHPMAILER INSTEAD OF THE PHP MAIL() FUNCTION
require 'PHPMailer-master/PHPMailerAutoload.php';
/*
// an email address that will be in the From field of the email.
$mail->CharSet="UTF-8";
$fromEmail = 'xxxx@gmail.com';
$fromName = 'Site web';
// subject of the email
$subject = 'Nouveau message fomulaire du siteweb';
// form field names and their translations.
// array variable name => Text to appear in the email
$fields = array('nom_id' => 'Nom', 'email_id' => 'Courriel', 'depart_id' => 'Adressé à', 'message_id' =>'Message');
$mail->Body = array('nom_id' => 'Nom -', 'email_id' => 'Courriel -', 'depart_id'=> 'Adressé à', 'message_id' =>'Message');
//, 'phone' => 'Phone', 'email' => 'Email', 'message' => 'Message'
// message that will be displayed when everything is OK :)
$okMessage = 'Votre demande a été soumis avec succès. Merci, I will get back to you soon!';
// If something goes wrong, we will display this message.
$errorMessage = 'There was an error while submitting the form. Please try again later';
/*
// if you are not debugging and don't need error reporting, turn this off by error_reporting(0);
error_reporting(E_ALL & ~E_NOTICE);
try
{
if(count($_POST) == 0) throw new \Exception('Form is empty');
$emailTextHtml = "<h3>Message du formulaire contacte du siteweb</h3><hr>";
$emailTextHtml .= "<table>";
foreach ($_POST as $key => $value) {
// If the field exists in the $fields array, include it in the email
if (isset($fields[$key])) {
$emailTextHtml .= "<tr><th>$fields[$key]</th><td>$value</td></tr>";
}
}
$emailTextHtml .= "</table><hr>";
$emailTextHtml .= "<p>Merci! <br>Passez une belle journée.</p>";
$mail = new PHPMailer;
$mail->setFrom($fromEmail, $fromName);
$mail->addAddress($sendToEmail, $sendToName); // you can add more addresses by simply adding another line with $mail->addAddress();
$mail->addReplyTo($from);
$mail->isHTML(true);
$mail->CharSet="UTF-8";
$mail->Subject = $subject;
$mail->msgHTML($emailTextHtml); // this will also create a plain-text version of the HTML email, very handy
if(!$mail->send()) {
throw new \Exception('I could not send the email.' . $mail->ErrorInfo);
}
$responseArray = array('type' => 'success', 'message' => $okMessage);
}
catch (\Exception $e)
{
// $responseArray = array('type' => 'danger', 'message' => $errorMessage);
$responseArray = array('type' => 'danger', 'message' => $e->getMessage());
}
// if requested by AJAX request return JSON response
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$encoded = json_encode($responseArray);
header('Content-Type: application/json');
echo $encoded;
}
// else just display the message
else {
echo $responseArray['message'];
}
J'aimerais que le département sélectionné reçoit le courriel.
Merci
Voici mon php.
<?php
/*
THIS FILE USES PHPMAILER INSTEAD OF THE PHP MAIL() FUNCTION
- /
require 'PHPMailer-master/PHPMailerAutoload.php';
/*
- CONFIGURE EVERYTHING HERE
- /
// an email address that will be in the From field of the email.
$mail->CharSet="UTF-8";
$fromEmail = 'xxxx@gmail.com';
$fromName = 'Site web';
// subject of the email
$subject = 'Nouveau message fomulaire du siteweb';
// form field names and their translations.
// array variable name => Text to appear in the email
$fields = array('nom_id' => 'Nom', 'email_id' => 'Courriel', 'depart_id' => 'Adressé à', 'message_id' =>'Message');
$mail->Body = array('nom_id' => 'Nom -', 'email_id' => 'Courriel -', 'depart_id'=> 'Adressé à', 'message_id' =>'Message');
//, 'phone' => 'Phone', 'email' => 'Email', 'message' => 'Message'
// message that will be displayed when everything is OK :)
$okMessage = 'Votre demande a été soumis avec succès. Merci, I will get back to you soon!';
// If something goes wrong, we will display this message.
$errorMessage = 'There was an error while submitting the form. Please try again later';
/*
- LET'S DO THE SENDING
- /
// if you are not debugging and don't need error reporting, turn this off by error_reporting(0);
error_reporting(E_ALL & ~E_NOTICE);
try
{
if(count($_POST) == 0) throw new \Exception('Form is empty');
$emailTextHtml = "<h3>Message du formulaire contacte du siteweb</h3><hr>";
$emailTextHtml .= "<table>";
foreach ($_POST as $key => $value) {
// If the field exists in the $fields array, include it in the email
if (isset($fields[$key])) {
$emailTextHtml .= "<tr><th>$fields[$key]</th><td>$value</td></tr>";
}
}
$emailTextHtml .= "</table><hr>";
$emailTextHtml .= "<p>Merci! <br>Passez une belle journée.</p>";
$mail = new PHPMailer;
$mail->setFrom($fromEmail, $fromName);
$mail->addAddress($sendToEmail, $sendToName); // you can add more addresses by simply adding another line with $mail->addAddress();
$mail->addReplyTo($from);
$mail->isHTML(true);
$mail->CharSet="UTF-8";
$mail->Subject = $subject;
$mail->msgHTML($emailTextHtml); // this will also create a plain-text version of the HTML email, very handy
if(!$mail->send()) {
throw new \Exception('I could not send the email.' . $mail->ErrorInfo);
}
$responseArray = array('type' => 'success', 'message' => $okMessage);
}
catch (\Exception $e)
{
// $responseArray = array('type' => 'danger', 'message' => $errorMessage);
$responseArray = array('type' => 'danger', 'message' => $e->getMessage());
}
// if requested by AJAX request return JSON response
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$encoded = json_encode($responseArray);
header('Content-Type: application/json');
echo $encoded;
}
// else just display the message
else {
echo $responseArray['message'];
}
4 réponses
-
Bonjour
Oui...et ?
Quel est le souci ?
-
Je ne sais comment créer une boucle sur le php pour la demande du formulaire soit dirigée directement au bon département.
-
Une boucle sur quoi ?
Quel est le code de ton formulaire ?
NB: Pour poster du code sur le forum, merci de le faire en utilisant LES BALISES DE CODE (et en y précisant le langage)
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
.
-
-
<select id="depart_id" name="mode_id" class="form-control">
<option value="">Départements</option>
<option value="Compatabilité">Comptabilité</option>
<option value="Répartiteur">Répartiteur</option>
<option value="Ventes">Ventes</option>
</select>-
là tu ne nous montres que la liste des départements......
Je t'ai demandé le code de ton formulaire (sous entendu... complet) /
De plus, comment sais tu, en fonction du département, vers quelle adresse tu dois envoyer ton mail ?
Où se trouve l'information ?
Comment la récupères tu ? Avec quel code ?
Si tu veux de l'aide...... fais un effort sur la rédaction et les explications de tes questions.... c'est assez désagréable de venir mendier des informations qui sont pourtant évidentes à donner et sans lesquelles nous ne pouvons rien faire....
Merci.
-
-
Je m'excuse je croyais avoir mis assez d'information;
Voici le formulaire:
<div class="form"> <div id="sendmessage">Your message has been sent. Thank you!</div> <div id="errormessage"></div> <form id="contact-form" method="post" action="contact-2.php" autocomplete="on" role="form" class="form-group"> <div class="form-row"> <div class="form-group col-md-6"> <input type="text" name="nom_id" class="form-control" id="nom_id" placeholder="Votre nom" data-rule="minlen:4" data-msg="S.V.P. entrez au moins 4 caractères" /> <div class="validation"></div> </div> <div class="form-group col-md-6"> <input type="email" class="form-control" name="email_id" id="email_id" placeholder="Votre courriel" data-rule="email" data-msg="S.V.P. entrez un adresse de courriel valide" /> <div class="validation"></div> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <input type="text" name="subject_id" class="form-control" id="subject_id" placeholder="Sujet" data-rule="minlen:4" data-msg="S.V.P. entrez au moins 4 caractères" /> <div class="validation"></div> </div> <div class="form-group"> <select id="depart_id" name="mode_id" class="form-control"> <option value="">Départements</option> <option value="Compatabilité">Comptabilité</option> <option value="Répartiteur">Répartiteur</option> <option value="Ventes">Ventes</option> </select> </div> </div> <div class="form-group"> <textarea class="form-control" name="message_id" id="message_id" rows="5" data-rule="required" data-msg="S.V.P. entrez votre message" placeholder="Message"></textarea> <div class="validation"></div> </div> <div class="text-center"><button type="submit">Envoyer</button></div> </form>
EDIT : Correction des balises de code
Mon PHP pour envoyer les courriel
<?php require 'PHPMailer-master/PHPMailerAutoload.php'; // an email address that will be in the From field of the email. $mail->CharSet="UTF-8"; $fromEmail = 'xxxx@xxxx.com'; \* courriel du site web en question */ $fromName = 'Site web'; // subject of the email $subject = 'Nouveau message fomulaire du siteweb'; // form field names and their translations. // array variable name => Text to appear in the email $fields = array('nom_id' => 'Nom', 'email_id' => 'Courriel', 'depart_id' => 'Adressé à', 'message_id' =>'Message'); $mail->Body = array('nom_id' => 'Nom -', 'email_id' => 'Courriel -', 'depart_id'=> 'Adressé à', 'message_id' =>'Message'); //, 'phone' => 'Phone', 'email' => 'Email', 'message' => 'Message' // message that will be displayed when everything is OK :) $okMessage = 'Votre demande a été soumis avec succès. Merci, I will get back to you soon!'; // If something goes wrong, we will display this message. $errorMessage = 'There was an error while submitting the form. Please try again later'; /* * LET'S DO THE SENDING*/// if you are not debugging and don't need error reporting, turn this off by error_reporting(0);error_reporting(E_ALL & ~E_NOTICE);try{ if(count($_POST) == 0) throw new \Exception('Form is empty'); $emailTextHtml = "<h3>Message du formulaire contacte du siteweb</h3><hr>"; $emailTextHtml .= "<table>"; foreach ($_POST as $key => $value) { // If the field exists in the $fields array, include it in the email if (isset($fields[$key])) { $emailTextHtml .= "<tr><th>$fields[$key]</th><td>$value</td></tr>"; } } $emailTextHtml .= "</table><hr>"; $emailTextHtml .= "<p>Merci! <br>Passez une belle journée.</p>"; $mail = new PHPMailer; $mail->setFrom($fromEmail, $fromName); $mail->addAddress($sendToEmail, $sendToName); // you can add more addresses by simply adding another line with $mail->addAddress(); $mail->addReplyTo($from); $mail->isHTML(true); $mail->CharSet="UTF-8"; $mail->Subject = $subject; $mail->msgHTML($emailTextHtml); // this will also create a plain-text version of the HTML email, very handy if(!$mail->send()) { throw new \Exception('I could not send the email.' . $mail->ErrorInfo); } $responseArray = array('type' => 'success', 'message' => $okMessage);}catch (\Exception $e){ // $responseArray = array('type' => 'danger', 'message' => $errorMessage); $responseArray = array('type' => 'danger', 'message' => $e->getMessage());}// if requested by AJAX request return JSON responseif (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { $encoded = json_encode($responseArray); header('Content-Type: application/json'); echo $encoded;}// else just display the messageelse { echo $responseArray['message'];}
Merci d'avance pour l'aide.-
peux-tu prendre le temps de répondre à chaque question?
1) comment sais tu, en fonction du département, vers quelle adresse tu dois envoyer ton mail ?
2) Où se trouve l'information ?
3) Comment la récupères tu ? Avec quel code ?
si tu ne comprends pas la question, merci de demander de la clarifier, au lieu de faire comme si elle n'avait pas été posée. -
-