Envois des e-mail avec php

Fermé
Profil bloqué - Modifié par dangelot le 12/12/2013 à 12:29
 Utilisateur anonyme - 18 déc. 2013 à 20:58
Bonjour,
j'ai créé une page web qui sert à envoyer les e-mails à nos clients mais je ne parviens pas à envoyer un message.
Voici le code HTML :
<html>
 <head>
  <title>Page d'envois des messages éléctroniques</title>
 </head>
 <body style="background-color:teal; font-size:12px; font-familly:verdana; padding-top:50px;padding-left:200px">
  <form action="#" Method="POST" style="background-color:orange;width:650px">
   <table>
    <tr>
  <td>Adresse de l'expediteur</td><td><select name="exp" style="width:125px; height:25px" >
   <?php
    include("connexion.php");
    $req=$bdd->query("select* from personnel");
    while($data=$req->fetch())
    {
     echo'<option value="'.$data['Email'].'">'.$data['Email'].'</option>';
    }
   ?>
  </select></td>
 </tr>
 <tr>
  <td>Adresse du destinataire</td><td><input type="text" name="dest" value="" style="width:130px; height:25px" maxlength="100px"></td>
 </tr>
 <tr>
  <td>Sujet</td><td><input type="text" name="su" value="" style="width:130px; height:25px"></td>
 </tr>
 <tr>
  <td>Contenu du message</td><td><textarea cols="35" rows="5" name="ob" maxlength="200px"></textarea></td>
 </tr>
 <tr>
  <td><input type="submit" name="ok" value="Envoyer" style="background-color:blue;color:yellow;width:150px; height:50px; font-size:25px;font-familly:verdana"></td>
 </tr>
   </table>
   <?php
    if(isset($_POST['ok']))
 {
  include("executer/envoisMail.php");
 }
   ?>
  </form>
 </body>
</html>

Et voici le code PHP:
<?php
 //On va chercher la définition de la classe
 require("class.phpmailer.php");
 include("connexion.php");
 $exp=$_POST['exp'];
 $dest=$_POST['dest'];
 $su=$_POST['su'];
 $ob=$_POST['ob'];
 
 //La requête de recuperation du Nom et Prenom de l'expeditaire
 $req=$bdd->query("select Nom,Prenom from personnel where Email='$exp'");
 $data=$req->fetch();
 $nom=$data['Nom'];
 $prenom=$data['Prenom'];
 
 //On va créé une nouvelle instance de la classe
 $mail=new PHPMailer();
 //De qui vient le message, e-mail puis nom
 $mail->From=$exp;
 $mail->FromName=$nom;
 
 //Définition du sujet/objet
 $mail->Subject=$su;
 
 //On lit le contenu d'une page html
 $body=file_get_contents('messages.php');
 
 //On definit le contenu de cette page comme message
 $mail->MsgPHP($body);
 
 //On pourra définir un message alternatif pour les boîtes de messagerie n'acceptant pas le html
 $mail->AltBody="Ce message est au format HTML, votre messagerie n'accepte pas ce format.";
 
 //Il reste encore à ajouter au moins un destinataire (ou plus, par plusieurs appel à cette methode)
 $mail->AddAddress($dest."Bonjour");
 
 //Pour finir, on envoi l'e-mail
 $mail->send();
 
?>

Je vous prie de m'aider pour que je parvienne à envoyer un message à mes client ou ami.
Merci d'avance à tous

Voici le message d'erreur:
Could not instantiate mail function.
A voir également:

13 réponses

ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
12 déc. 2013 à 11:59
Merci d'utiliser la balise de code, ça simplifiera la lecture.
0
ceci vient d'être corrigé, il reste une seule ligne que j'ai précisé apres la modification du message.
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
12 déc. 2013 à 12:12
la balise de code s'il te plait !

Edit ton message, et au lieu de mettre en gras, utilise la balise code, tu peux même choisir le type de code, merci pour nous ^^
0
Utilisateur anonyme
12 déc. 2013 à 12:18
Bonjour

$body = file_get_contents('messages.php');

C'est =, pas ->
Faut pas se laisser emporter par la syntaxe objet quand il ne s'agit pas d'objet !
0
Profil bloqué
12 déc. 2013 à 12:46
Si vous avez bien vu, je viens de corriger cette erreur mais la question reste à resoudre l'instatiation de la fonction mail:Could not instantiate mail function.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je viens de le faire et merci d'avance...
je suis vraiment à la recherche de la resolution de ce probleme,
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
12 déc. 2013 à 12:34
Merci à toi, jette un oeil à la réponse du père, il est extrêmement compétent ;)
0
Profil bloqué
12 déc. 2013 à 12:50
Oui, c'est vrai mais si vous regardez bien dans les codes , je viens de corriger cette erreur mais la question reste à resoudre l'instatiation de la fonction mail et voici le message d'erreur qui reste:Could not instantiate mail function.
0
Utilisateur anonyme
12 déc. 2013 à 15:18
Déjà, cette ligne me semble suspecte :
$mail->AddAddress($dest."Bonjour");

On se demande un peu ce que le "Bonjour" vient faire ici !

Sinon, les paramètres de ton serveur de mail (type, hôte) sont-ils bien définis ? Travailles-tu en local ou en ligne ?
0
Profil bloqué
16 déc. 2013 à 13:45
Je travail en local
et je ne sais pas ce que vous voulez dire par les parametres du serveur(type, hote) pouriez vous m'aider avec un exemple?
Merci d'avance
0
Utilisateur anonyme
16 déc. 2013 à 14:46
Merci d'utiliser "Répondre au sujet" pour répondre et n'utiliser "Ajouter un commentaire" que quand il s'agit de commentaire

Il faut savoir que PHP n'envoie pas de mails par lui-même, mais fait appel à un service extérieur, souvent un serveur SMTP.
Ce serveur SMTP peut lui aussi être local (mais je doute que tu en aies installé un) ou bien celui de ton fournisseur d'accès Internet. Il faut indiquer tout ça à phpMailer pour qu'il puisse envoyer tes mails.

$mail->IsSMTP();    // pour dire d'utiliser SMTP
$mail->Host='smtp.free.fr';       // nom du serveur SMTP. dépend de ton fournisseur d'accès
$mail->Port=25;     // port standard SMTP


Peux-tu dire si tu as toujours le même message d'erreur ou un autre, et sur quelle ligne ?
0
Utilisateur anonyme
16 déc. 2013 à 14:48
Bonjour TheBiShOp

Je viens de voir ton commentaire. C'est très flatteur, merci, mais sûrement largement excessif.
0
Profil bloqué
18 déc. 2013 à 14:40
Même message could not instatiate function mail()
0
Il va falloir que j'essaye ton script pour voir si je peux reproduire cette erreur, car je ne l'ai jamais vue.

En attendant, je remarque ceci :
 $exp=$_POST['exp'];

Or, il n'y a aucun 'exp' dans ton formulaire. Le champ From ( $mail -> From=$exp;) est donc incorrect
essaye
 $exp='monadresse@monfai.fr';

Pour avoir une adresse d'expéditeur correcte
0
Utilisateur anonyme
18 déc. 2013 à 20:58
Après vérification, ton message est un message généré par phpmailer. Il signifie que l'appel à la fonction mail du php a retourné false.
Parmi les causes possibles, il y a effectivement les paramètres du serveur (hôte, port) et l'adresse de l'expéditeur.
0