IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

PHP mail en local - aucune action


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Homme Profil pro
    ingénieur
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Par défaut PHP mail en local - aucune action
    Bonjour à tous.

    Ce matin, j'ai voulu coder en php un simple formulaire par lequel l'utilisateur peut envoyer un message par mail à un administrateur, le tout en local pour tester mon code.

    j'ai chercher un peu et ai été rapidement convaincu d'utiliser PHPMailer que j'ai donc télécharger.

    Seulement voila, après avoir créer mon code, le code semble s'exécuter sans qu'il ne se passe rien.

    Voici le code en question

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?php
    require_once 'PHPMailer/PHPMailerAutoload.php';
    public function sendmessage()
    {
    if(isset($_POST['message']))
    {
    if(!$_POST['message'] = null)
    {
    $mail = new PHPMailer;
    $mail->isSMTP();
    $mail->SMTPDebug = 0;
    $mail->Host = 'smtp.gmail.com';
    $mail->Port = 587;
    $mail->SMTPSecure = 'tls';
    $mail->SMTPAuth = true;
    $mail->Username = 'mon.adresse@gmail.com';
    $mail->Password = '******';
    $mail->setFrom('test@gmail.com', 'First Last');
    $mail->addAddress('mon.adresse@gmail.com');
    $mail->Subject = 'Message from user';
    if(!$mail->send())
    {
    $message = "<script>alert('Le message n'a pas pu être envoyé);</script>";}
    $vue = new Vue("Contact","ContactMessage",$message);
    $vue->generer();
    }
    else
    {
    $message = "<script>alert('Message envoyé);</script>";
    $vue = new Vue("Contact","ContactMessage",$message);
    $vue->generer();
    }
    }
     
    }
    ?>
    J'ai fait des tests, $_POST['message'] est bien défini et contient bien la valeur que je souhaite.
    $message est normalement passé à ma vue qui affiche automatiquement le message...sauf que a rien. On dirait que le code s'exécute sans aucun résultat.

    j'ai l'impression que l'erreur est idiote...
    PS : j'ai chercher sur ce forum trouvant des sujet similaire mais dont aucune solution proposée n'a fonctionné...
    Merci de votre aide.

    Cdt

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour et bienvenu sur DVP,

    1/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public function sendmessage()
    Où est exécutée cette fonction ?

    2/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!$_POST['message'] = null)
    == ou ===

    N.B. on peut avantageusement remplacer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!empty($_POST['message']))
    3/ et $mail->body ?

  3. #3
    Membre averti
    Homme Profil pro
    ingénieur
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Par défaut
    Bonjour et merci de la réponse.

    1/ Pour information, j'utilise l'architecture décrite ici : (pour l'instant le site ressemble à la partie "avant le passage au framworks" de ce tutoriel et j'ai quelque peu modifié la vue pour insérer des message très simple en js ainsi que l'architecture qui sépare le MVC en Bundle, je me demande d'ailleurs si ce n'est pas cette dernière partie qui me créerai des ennuis à cause de l'intégration de PHPMailer, mais l'objet PHPMailer s'instancie apparemment bien donc...).

    cette fonction est donc exécutée dans un controleur que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <?php
     
    require_once 'Vue.php';
    require_once 'PHPMailer/PHPMailerAutoload.php';
    require_once 'PHPMailer/class.smtp.php';
    class ControleurContact 
    {
     
      public function __construct() {}
     
      public function contact() {
      	if (isset($_SESSION['userid']))
      	{
      		if ($_SESSION['userid'] != null)
      		{
     	      	$vue = new Vue("Contact","ContactMessage");
    	    	$vue->generer();
      		}
      		else
      		{
    	      	$vue = new Vue("Contact","Contact");
    	    	$vue->generer();
      		}
      	}
      	else
      	{
         	$vue = new Vue("Contact","Contact");
        	$vue->generer();
      	}
      }
      public function sendmessage()
      	{
      		if(isset($_POST['message']))
      		{
      			if(!empty($_POST['message']))
      			{
      				$mail = new PHPMailer;
      				$mail->isSMTP();
    	  			$mail->SMTPDebug = 0;
    	  			$mail->Host = 'smtp.gmail.com';
    	  			$mail->Port = 587;
    	  			$mail->SMTPSecure = 'tls';
    	  			$mail->SMTPAuth = true;
    	  			$mail->Username = '*******@gmail.com';
    	  			$mail->Password = '*******';
    	  			$mail->setFrom('test@gmail.com', 'First Last');
    	  			$mail->addAddress('boucheron.julien@gmail.com');
    	  			$mail->Subject = 'Message from user';
    	  			//$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
    	  			$mail->AltBody = $_POST['message'];
    	  			if(!$mail->send())
    	  			{
    	 				$message = "<script>alert('Le message n'a pas pu être envoyé);</script>";}
    	      			$vue = new Vue("Contact","ContactMessage",$message);
    	      			$vue->generer();
    	  			}
    	  			else
    	  			{
    	  				$message = "<script>alert('Message envoyé);</script>";
    	      			$vue = new Vue("Contact","ContactMessage",$message);
    	      			$vue->generer();
    	  			}
      			}
     
      		}
     
    }
    et voici la vue qui contient le <form> qui appel cette action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php $this->titre = "LeSiteDeLaetitia - Contact"; ?>
     
     
    	<p>L'équipe :</p>
    		<p>    ******* : création, conception et préparation des kits.</p>
    		<p>    ***** : Aide de camps ! </p>
    		<p>    ***** : Informatique</p>
     
    <div id='send_contact'>
    		<form method="POST" action="index.php?action=Sendmessage" class="formulaire">
    			<div>
    			<fieldset>
    			<legend>Envoyer un message</legend>
    			<div>
    				<label for='pseudo'>Pseudonyme</label>
    				<textarea name='message' rows="20" cols="100" onfocus="if(this.value=='Tapez votre message ici'){this.value='';}">Tapez votre message ici</textarea>
    				<input type="submit" value="Envoyer">
    			</div>
    			</fieldset>
    			</div>
    		</form>
    	</div>
    et voici mon routeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?php
    require_once 'Accueil/ControleurAccueil.php';
    require_once 'Contact/ControleurContact.php';
    require_once 'Forum/ControleurForum.php';
    require_once 'Faq/ControleurFaq.php';
    require_once 'Membre/ControleurMembre.php';
    require_once 'Vue.php';
     
    class Routeur {
     
      private $ctrlAccueil;
      private $ctrlContact;
      private $ctrlForum;
      private $ctrlFaq;
      private $ctrlMembre;
      private $ismembre;
      public function __construct() 
      {
        $this->ctrlAccueil = new ControleurAccueil();
        $this->ctrlContact = new ControleurContact();
        $this->ctrlForum = new ControleurForum();
        $this->ctrlFaq = new ControleurFaq();
        $this->ctrlMembre = new ControleurMembre();
        $this->ismembre = $this->ctrlMembre->ismembre();
      }
     
      // Traite une requête entrante
      public function routerRequete() {
          if (isset($_GET['action'])) {
            if ($_GET['action'] == 'Accueil') {$this->ctrlAccueil->accueil();}
            elseif ($_GET['action'] == 'Contact') {$this->ctrlContact->contact();}
            elseif ($_GET['action'] == 'Sendmessage') {$this->ctrlContact->sendmessage();}
            elseif ($_GET['action'] == 'Forum') {$this->ctrlForum->forum();}
            elseif ($_GET['action'] == 'Faq') {$this->ctrlFaq->faq();}
            elseif ($_GET['action'] == 'Moncompte') {$this->ctrlMembre->moncompte();}
            elseif ($_GET['action'] == 'Modifinfos') {$this->ctrlMembre->modifinfos();}
            elseif ($_GET['action'] == 'Connexion') {$this->ctrlMembre->connexion();}
            elseif ($_GET['action'] == 'Deconnexion') {$this->ctrlMembre->deconnexion();}
            elseif ($_GET['action'] == 'Inscription') {$this->ctrlMembre->inscription();}
            elseif ($_GET['action'] == 'Changepassword') {$this->ctrlMembre->changepassword();}
            else $this->ctrlAccueil->accueil();}
          else {$this->ctrlAccueil->accueil();}
      }
    }
    le chemin est donc le suivant index.php(controleur frontal)→routeur→ctrlContact(controleur du bundle contact)→exécution de la fonction 'sendmessage".

    2/ effectivement, le code initiale était avec "!=" et pas "!" et plus loin "=". j'ai testé tellement de chose pour résoudre mon problème que j'en ai oublié les bases... Mais je vais effectivement replacer tout cela par la fonction empty. merci du conseil .

    3/...effectivement il est absent, mais pourtant bien présent dans mon controleur (sous la forme AltBody). j'ai surement du le supprimer lors du copier coller car je nous voulait pas encombrer le forum avec l'intégralité du controleur....mea culpa ^^ .

    Enfin malgré ces ocnseils avisé... ça ne fonctionne malheureusement toujours pas.

    Merci de cette réponses et au plaisir de vous lire.

    Cdt.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    le code semble s'exécuter sans qu'il ne se passe rien.
    As-tu débugué le déroulement dans ton script pour voir ce qu'il se passait ?

    Si tu n'obtiens aucun des messages javascript (echec/réussite) c'est
    - soit ta fonction sendmessage() n'est pas appellée
    - soit les conditions dedans ne sont pas vraies

    ça se détermine facilement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     public function sendmessage()
      	{
            var_dump($_POST);
    Si tu obtiens le var_dump(), la fonction est bien appellée et le contenu du var_dump te dira pourquoi les conditions ne sont pas vraies.
    Si tu n'obtiens pas le var_dump(), il faut regarder l'endroit ou la fonction aurait du être appelée et procéder à la même démarche : que vaut $_GET['action'] etc.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    ingénieur
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Par défaut
    J'ai testé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     public function sendmessage()
      	{
          var_dump($_POST);
      		if(isset($_POST['message']))
      		{
      			if(!empty($_POST['message']))
      			{
              var_dump($_POST);
      				$mail = new PHPMailer;
      				$mail->isSMTP();
    	  			$mail->SMTPDebug = 0;
    	  			$mail->Host = 'smtp.gmail.com';
    	  			$mail->Port = 587;
    	  			$mail->SMTPSecure = 'tls';
    	  			$mail->SMTPAuth = true;
    	  			$mail->Username = '*****@gmail.com';
    	  			$mail->Password = '*****';
    	  			$mail->setFrom('test@gmail.com', 'First Last');
    	  			$mail->addAddress('boucheron.julien@gmail.com');
    	  			$mail->Subject = 'Message from user';
    	  			//$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
    	  			$mail->AltBody = 'coucou';//$_POST['message'];
    	  			if(!$mail->send())
    	  			{
    	 				    $message = "<script>alert('Le message n'a pas pu être envoyé);</script>";
    	      			$vue = new Vue("Contact","ContactMessage",$message);
    	      			$vue->generer();
    	  			}
    	  			else
    	  			{
    	  				$message = "<script>alert('Message envoyé);</script>";
    	      			$vue = new Vue("Contact","ContactMessage",$message);
    	      			$vue->generer();
    	  			}
      			}
      	  }
      	}

    J'obtient bien les deux var_dump suivant
    array (size=1)
    'message' => string 'coucou' (length=6)
    array (size=1)
    'message' => string 'coucou' (length=6)


    Ce qui, si je suis bien ton raisonnement et le code ci-dessus, ne correspond à aucune des deux solutions..L (PS, le contenu de mon POST est bien "coucou").

    Mais aucune erreurs n'est levée et toujours pas de mail...

  6. #6
    Membre averti
    Homme Profil pro
    ingénieur
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Par défaut
    Bonjour Bonjour.

    Est-ce qu'un bon samaritain aurait la solution qui résoudrait mon problème ?

    En cas de besoin voici un lien vers une copie du site en cours de développement https://www.dropbox.com/s/g5yno5zait...010h40.7z?dl=0
    Il est vraiment en cours de développement , aussi il manque bcp de chose c'est normal.

    Bonnes fêtes de fin d'années à tous !

  7. #7
    Membre averti
    Homme Profil pro
    ingénieur
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Par défaut
    Bonjour à tous.

    J'espère que vous avez passé un bon weekend de fêtes.

    Est-ce que quelqu'un aurait un peu de temps à consacrer à mon problème ?

    Merci d'avance.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Dommage que tu n'aies pas continué la démarche : effectivement il existe bien une troisième possibilité qui ait que le code se déroule bien jusqu'à la réussite ou l'echec de PHPMailer mais que ce soit l'affichage du message qui ne fonctionne pas.

    Dans quel fichier affiches-tu le message ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre averti
    Homme Profil pro
    ingénieur
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Par défaut
    De quel message parlons nous ?

    Du message du mail ou des message javascript ?

    Pour le message javascript :
    on part de cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    <?php
     
    class Vue {
     
      // Nom du fichier associé à la vue
      private $fichier;
      // Titre de la vue (défini dans le fichier vue)
      private $titre;
      private $menu;
      private $message;
      public function __construct($Bundle,$action,$message=null) {
        // Détermination du nom du fichier vue à partir de l'action
        $this->fichier = $Bundle . "/vue" . $action . ".php";
        $this->message = $message;
      }
     
      // Génère et affiche la vue
      public function generer($donnees=null) {
        // Génération de la partie spécifique de la vue
        $contenu = $this->genererFichier($this->fichier, $donnees);
        // Génération du gabarit commun utilisant la partie spécifique
     
        if (isset($_SESSION['userpseudo']))
        {
          $menu = $this->genererMenu($_SESSION['userpseudo']);
        }
        else
        {
          $menu = $this->genererMenu();
        }
     
        $vue = $this->genererFichier('gabarit.php',
          array('titre' => $this->titre, 'contenu' => $contenu, 'menu' => $this->menu,'message' => $this->message));
        // Renvoi de la vue au navigateur
        echo $vue;
      }
     
      // Génère un fichier vue et renvoie le résultat produit
      private function genererFichier($fichier, $donnees = null) {
        if (file_exists($fichier)) {
          // Rend les éléments du tableau $donnees accessibles dans la vue
          if (! $donnees == null) {extract($donnees);}
          // Démarrage de la temporisation de sortie
          ob_start();
          // Inclut le fichier vue
          // Son résultat est placé dans le tampon de sortie
          require $fichier;
          // Arrêt de la temporisation et renvoi du tampon de sortie
          return ob_get_clean();
        }
        else {
          throw new Exception("Fichier '$fichier' introuvable");
        }
      }
     
      private function genererMenu($session=null)
      {
        if (! $session==null)
        {
          $this->menu = '
          <div id="menu_membre" class="menu">
            <ul>
              <li>
                 <a  href="index.php?action=Moncompte"><div id="menu_membre1" class="sous_menu">' . $session . '</div></a>
                <ul>
                  <li>
                    <a  href="index.php?action=Moncompte"><div id="menu_membre1" class="sous_menu">Mon Compte</div></a>
                  </li>
                  <li>
                    <a  href="index.php?action=MesAchats"><div id="menu_membre1" class="sous_menu">Mes Achats</div></a>
                  </li>
                  <li>
                    <a  href="index.php?action=Deconnexion"><div id="menu_membre1" class="sous_menu">Deconnexion</div></a>
                  </li>
                </ul>
              </li>
            </ul>
          </div>';
     
        }
        else
        {
     
          $this->menu = '
          <div id="menu_membre" class="menu">
            <ul>
            <li><a  href="index.php?action=Connexion"><div id="menu_membre1" class="sous_menu">Connexion</div></a></li>
          </ul>
          </div>';
        }
      }
    }
    qui utilise ce gabarit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    <!DOCTYPE html>
    <html>
    	<head>
    		<title> <?= $titre?>	</title>
    		<meta charset="utf-8">
    		<link rel="stylesheet" type="text/css" href="content/style1.css"/>
    		<link rel="stylesheet" type="text/javascript" href="content/js1.js"/>
    		<link href="https://fonts.googleapis.com/css?family=Cantarell" rel="stylesheet">
    		<link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet">
    		<link rel="icon" type="image/x-icon" href="images/favicon.ico"/>
    		<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    		<link rel="stylesheet" href="/resources/demos/style.css">
    		<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    		<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    	</head>
    	<body>
    	<header>
    			<?= $menu ?>
    			<div id="baniere">
    				<div><img src="images/baniere1.jpg" alt="Baniere"></div>
    				<div><img src="images/titresite.png" alt="Baniere"></div>
    				<div><img src="images/baniere2.jpg" alt="Baniere"></div>
    				<div><img src="images/baniere3.jpg" alt="Baniere"></div>
    			</div>
    				<div id="menu_general" class="menu">
    					<ul>
    						<li><a  href="index.php?action=Accueil"><div id='menu_general1' class="sous_menu">Accueil</div></a></li>
    						<li><a  href="index.php?action=Produits"><div id='menu_general1' class="sous_menu">Produits</div></a></li>
    						<li><a  href="index.php?action=Forum"><div id='menu_general2' class="sous_menu">Forum</div></a></li>
    						<li><a  href="index.php?action=Contact"><div id='menu_general3' class="sous_menu">Contact</div></a></li>
    						<li><a  href="index.php?action=Faq"><div id='menu_general4' class="sous_menu">FAQ</div></a></li>
    					</ul>
    				</div>
    	</header>
    	<div id="page">
    		<?= $message ?>
    		<?= $contenu ?>	
    	</div>
    	<footer>
    			<div class="footer">
    				<p>Copyright - 2016</p>
    			</div>
    	</footer>
    	</body>
    </html>
    Et cette vue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php $this->titre = "LeSiteDeLaetitia - Contact"; ?>
     
    <div>
    		<p>L'équipe :</p>
    			<p>    Laetitia : création, conception et préparation des kits.</p>
    			<p>    Jade : Aide de camps ! </p>
    			<p>    Julien : Informatique</p>
     
    	<div id='send_contact'>
    			<form method="POST" action="index.php?action=Sendmessage" class="formulaire">
    				<div>
    				<fieldset>
    				<legend>Envoyer un message</legend>
    				<div>
    					<label for='pseudo'>Pseudonyme</label>
    					<textarea name='message' rows="20" cols="100" onfocus="if(this.value=='Tapez votre message ici'){this.value='';}">Tapez votre message ici</textarea>
    					<input type="submit" value="Envoyer">
    				</div>
    				</fieldset>
    				</div>
    			</form>
    		</div>
    </div>
    PS : ce système fonctionne bien sur d'autre page du site, comme ma page de connexion par exemple.

    Si l'on parle du message dans le mail, je pensais qu'utiliser la fonction AltBody permettait de s'affranchir d'un fichier html pour le contenu du mail.

    Je viens de faire un test en modifiant mon contrôleur comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    public function sendmessage()
      	{
          var_dump($_POST);
      		if(isset($_POST['message']))
      		{
      			if(!empty($_POST['message']))
      			{
              var_dump($_POST);
      				$mail = new PHPMailer;
      				$mail->isSMTP();
    	  			$mail->SMTPDebug = 0;
    	  			$mail->Host = 'smtp.gmail.com';
    	  			$mail->Port = 587;
    	  			$mail->SMTPSecure = 'tls';
    	  			$mail->SMTPAuth = true;
    	  			$mail->Username = '***********@gmail.com';
    	  			$mail->Password = '********';
    	  			$mail->setFrom('test@gmail.com', 'First Last');
    	  			$mail->addAddress('boucheron.julien@gmail.com');
    	  			$mail->Subject = 'Message from user';
    	  			//$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
    	  			$mail->AltBody = $_POST['message'];
                $message = "<script>alert('Message envoyé');</script>";
                  $vue = new Vue("Contact","ContactMessage",$message);
                  $vue->generer();
      			}
      	  }
      	}
    Et le message s'affiche bien.

    Je suppose donc que c'est la fonction send() qui fait défaut mais je ne comprend pas pourquoi...

    J'ai aussi testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var_dump($mail->send());
    qui me retourne "boolean false"...

  10. #10
    Membre averti
    Homme Profil pro
    ingénieur
    Inscrit en
    Décembre 2016
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Décembre 2016
    Messages : 20
    Par défaut
    en remplaçant $mail->AltBody = $_POST['message']; par $mail->Body = $_POST['message']; le mail est bien envoyé.... comme quoi..


    Désolé pour le dérangement et merci pour l'aide !

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    http://www.developpez.net/forums/d10...i/#post6057751

    Citation Envoyé par amoiraud Voir le message
    Salut,
    Le altBody est utilisé pour les clients mails qui n'acceptent pas le format HTML, il s'agit donc d'un body "allégé" sans balises HTML qui permet à celui que recevra ton mail de pouvoir le lire sans avoir des balises non interprétées de partout

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. envoi d'un mail en local en php
    Par luce von der rost dans le forum Langage
    Réponses: 3
    Dernier message: 09/05/2016, 20h10
  2. Xampp Php : problème envoi mail en local.
    Par diabli73 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 03/12/2008, 15h28
  3. formulaire AJAX + PHP aucune action
    Par akrogames dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/05/2008, 15h48
  4. Réponses: 12
    Dernier message: 28/05/2007, 04h31
  5. php mail() +config internet
    Par djabara dans le forum Apache
    Réponses: 25
    Dernier message: 24/11/2005, 21h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo