Envoyer des courriels

Résolu/Fermé
ldlouis Messages postés 4 Date d'inscription samedi 2 octobre 2010 Statut Membre Dernière intervention 13 septembre 2018 - 13 sept. 2018 à 02:37
yg_be Messages postés 23241 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 octobre 2024 - 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'];
}
A voir également:

4 réponses

jordane45 Messages postés 38244 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 octobre 2024 4 690
13 sept. 2018 à 06:40
Bonjour
Oui...et ?
Quel est le souci ?

0
Je ne sais comment créer une boucle sur le php pour la demande du formulaire soit dirigée directement au bon département.
0
jordane45 Messages postés 38244 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 octobre 2024 4 690
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


.
0
ldlouis Messages postés 4 Date d'inscription samedi 2 octobre 2010 Statut Membre Dernière intervention 13 septembre 2018
13 sept. 2018 à 17:50

<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>
0
jordane45 Messages postés 38244 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 octobre 2024 4 690
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.
0
ldlouis Messages postés 4 Date d'inscription samedi 2 octobre 2010 Statut Membre Dernière intervention 13 septembre 2018
Modifié le 13 sept. 2018 à 23:25
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.
0
yg_be Messages postés 23241 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 octobre 2024 1 540
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.
0
Je m'excuse de vous avoir dérangé. Oubliez ma question.
0
yg_be Messages postés 23241 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 octobre 2024 1 540 > ldlouis
14 sept. 2018 à 09:25
peux-tu alors clôturer le sujet via la roue dentée à droite du titre?
0