Accueil

Formation

Site fadagogo.com
Programmation
Automation
HTML
PHP

Sénégal
Asbl
Sur le chemin...
Dernière mise à jour : le dimanche 25 mai 2003

L'envoi de mail par PHP

Théorie

L'envoi d'un mail par PHP est une fonction très simple à mettre en oeuvre.

La petite difficulté se présentera au niveau de la construction du corps du message, celui-ci étant un résumé de l'ensemble du formulaire complété par le visiteur du site.

Cette fonction se présente comme suit:

mail (destinataire, sujet, corps, en-têtes supplémentaires);

Concernant les 4 arguments de cette fonction, nous pouvons dire ceci:

  1. Destinataire est soit une variable contenant l'adresse du destinataire ou soit directement l'adresse du destinataire entre guillemets
  2. Sujet est soit une variable contenant le sujet, soit directement le sujet noté entre guillemets
  3. Idem pour le corps du message. Dans notre cas, ce sera une variable dont le contenu aura été constitué par la concaténation de nombreux contenus de variables et de nombreuses chaînes de caractères.
  4. Il est également possible d'ajouter une ou des en-têtes particulières; elle doivent être séparées par des "\n" qui définissent un passage à la ligne en PHP

Exemple

Voici un exemple de la façon dont un formulaire peut être traiter.

L'en-tête enregistre les date et heure du serveur et les traite afin de les présenter sous la forme jj/mm/aaaa (jour, mois, année) et hh:mm (heure et minutes)

Ensuite, tous les contenus des variables sont concaténés, entrecoupés de texte afin de comprendre de quoi il s'agit.

Voilà ce que peut donner l'envoi d'un mail basé sur le remplissage du formulaire sur le conflit israélo-palestinien (voir la page du site www.rupert.be) (rappelons que le point est l'opérateur de concaténation et "\n" commande le passage à la ligne):

<?php
    // Enregistrement de la date et l'heure du serveur grâce à la fonction getDate();
    $current_date = getDate();
    // Prélèvement de la valeur des minutes
    $les_minutes = $current_date["minutes"];
    // Si les minutes ne font qu'un rang, on concatène un 0 devant
    if (strlen($les_minutes) == 1)
        $les_minutes = "0" . $les_minutes;
    // Formattage de la date dans une variable, séparation par des slash
    $date_act = $current_date["mday"] . "/" . $current_date["mon"] . "/" . $current_date["year"];
    // Formattage de l'heure dans une variable, séparation par 'h'
    $heure_act= $current_date["hours"] . "h" . $les_minutes;

    $message = "Date : " . $date_act . " Heure : " . $heure_act;
    $message = $message . "\n============\nRéponses à l'enquête sur le conflit israélo-palestinien";

    $message = $message . "\n\nPseudonyme: " . $pseudo . "\nTranche âge: " . $age . "\n01. Information: se sent " . $q01 . "\n02. Type de conflit: " . $q02 . "\n03. Les Palestiniens sont des: " . $q03a . ", " . $q03b . ", " . $q03c . ", " . $q03d . ", " . $q03e . ", " . $q03f;
    $message = $message . "\n04. Les Israéliens sont des: " . $q04a . ", " . $q04b . ", " . $q04c . ", " . $q04d . ", " . $q04e . ", " . $q04f . "\n05. Religions en Israël: " . $q05a . ", " . $q05b . ", " . $q05c . "\n06. Religions en Palestine: " . $q06a . ", " . $q06b . ", " . $q06c;
    $message = $message . "\n07. Création d'un état palestinien prévu par ONU: " . $q07 ."\n08. Capitale Israël: " . $q08 ."\n09. Capitale Palestine: " . $q09 ."\n10. En 1947, portion pour Israël: " . $q10 ."\n11. Portion après la guerre de 1948: " . $q11 ."\n12. Nom de la portion palestinienne restante: " . $q12 ."\n13. Portion revendiquée par la Palestine: " . $q13 ."\n14. Territoires occupés: " . $q14;
    $message = $message . "\n15. Des palestiniens ont la nationalité israélienne: " . $q15 ."\n16. Mêmes droits: " . $q16 ."\n17. Date première vague de réfugiés: " . $q17 ."\n18. Où vivent-ils: " . $q18 . "\n19. Conditions de vie: " . $q19 ."\n20. Cause de la dernière Intifada: " . $q20 . "\n21. Mots associés aux attentats-suicides: " . $q21a . ", " . $q21b . ", " . $q21c . ", " . $q21d . ", " . $q21e . "\n22. ONU interdit-il les nouvelles colonies: " . $q22;
    $message = $message . "\n23. Des soldats refusent-ils le service en Palestine: " . $q23 ."\n24. Sanction: " . $q24 ."\n25. Existe-t-il des mouvements de paix israélo-palestiniens: " . $q25 ."\n26. Armes de destruction massive en Israël: " . $q26 ."\n27. Israël respecte les conventions ONU: " . $q27 ."\n28. Critique = antisémitisme: " . $q28 ."\n29. Que deviendriez-vous: " . $q29a . ", " . $q29b . ", " . $q29c . ", " . $q29d . ", " . $q29e;
    mail("desti1@serveur1.be", "Réponses Palestine", $message, "");
    mail("desti2@serveur2.be", "Réponses Palestine", $message, "");

?>

Et voici le résultat (l'attention étant portée à la présentation du résultat et non au contenu des réponses (qui peuvent être incomplètes, fausses,...)):

Date : 22/5/2003 Heure : 20h59
====================
Réponses à l'enquête sur le conflit israélo-palestinien

Pseudonyme: Duchnu
Tranche âge: 21_30
01. Information: se sent désinformé
02. Type de conflit: expansion
03. Les Palestiniens sont des: , , opprimés, , ,
04. Les Israéliens sont des: , , , occupants, ,
05. Religions en Israël: , musulmane,
06. Religions en Palestine: juive, ,
07. Création d'un état palestinien prévu par ONU: oui
08. Capitale Israël: ?
09. Capitale Palestine: ?
10. En 1947, portion pour Israël: 35%
11. Portion après la guerre de 1948: 38%
12. Nom de la portion palestinienne restante: ?
13. Portion revendiquée par la Palestine: 75%
14. Territoires occupés: ?
15. Des palestiniens ont la nationalité israélienne: oui
16. Mêmes droits: oui
17. Date première vague de réfugiés: ?
18. Où vivent-ils: ?
19. Conditions de vie: ?
20. Cause de la dernière Intifada: ?
21. Mots associés aux attentats-suicides: , , , convic_rel,
22. ONU interdit-il les nouvelles colonies: oui
23. Des soldats refusent-ils le service en Palestine: oui
24. Sanction: emprisonnement
25. Existe-t-il des mouvements de paix israélo-palestiniens: oui
26. Armes de destruction massive en Israël: non
27. Israël respecte les conventions ONU: non
28. Critique = antisémitisme: oui
29. Que deviendriez-vous: , , , désespéré,

Bon courage !!!

◊ ◊ ◊

© Rupert Meurice de Dormale 2003