Menu

Envoyer des courriels [Résolu]

ldlouis 4 Messages postés samedi 2 octobre 2010Date d'inscription 13 septembre 2018 Dernière intervention - 13 sept. 2018 à 02:37 - Dernière réponse : yg_be 6477 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 21 septembre 2018 Dernière intervention
- 14 sept. 2018 à 09:25
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';

/*
  • 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'];
}
Afficher la suite 

Votre réponse

9 réponses

jordane45 22528 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 22 septembre 2018 Dernière intervention - 13 sept. 2018 à 06:40
0
Merci
Bonjour
Oui...et ?
Quel est le souci ?

Commenter la réponse de jordane45
0
Merci
Je ne sais comment créer une boucle sur le php pour la demande du formulaire soit dirigée directement au bon département.
jordane45 22528 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 22 septembre 2018 Dernière intervention - 13 sept. 2018 à 13:58
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


.
Commenter la réponse de ldlouis
ldlouis 4 Messages postés samedi 2 octobre 2010Date d'inscription 13 septembre 2018 Dernière intervention - 13 sept. 2018 à 17:50
0
Merci

<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>
jordane45 22528 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 22 septembre 2018 Dernière intervention - 13 sept. 2018 à 17:57
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.
Commenter la réponse de ldlouis
ldlouis 4 Messages postés samedi 2 octobre 2010Date d'inscription 13 septembre 2018 Dernière intervention - Modifié par jordane45 le 13/09/2018 à 23:25
0
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.
yg_be 6477 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 21 septembre 2018 Dernière intervention - 13 sept. 2018 à 22:10
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.
Je m'excuse de vous avoir dérangé. Oubliez ma question.
yg_be 6477 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 21 septembre 2018 Dernière intervention > ldlouis - 14 sept. 2018 à 09:25
peux-tu alors clôturer le sujet via la roue dentée à droite du titre?
Commenter la réponse de ldlouis