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

Langage PHP Discussion :

Could not instantiate mail function


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 29
    Points : 15
    Points
    15
    Par défaut Could not instantiate mail function
    Bonjour,

    Je voudrai envoyer des emails via PHP. J'ai recouru à PHPMailer
    j'ai trop cherché sur internet et j'ai vérifié pas mal de chose, mais toujours, j'ai la même erreur qui s'affiche:
    Could not instantiate mail function

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 227
    Points : 4 711
    Points
    4 711
    Par défaut
    Bonjour,
    sans un minimum de code, comment attendre une réponse ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    require './mails/class.phpmailer.php';
    $mail = new PHPMailer();

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    voilà un bout de code

    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
    <?php
    require "C:/wamp/www/PHPMailer/class.phpmailer.php";
    $mail = new PHPmailer();
    $mail->IsHTML(true); //si votre email contient du HTML
    $mail->From='mon_mail@gmail.com';
    $mail->AddAddress("mail@gmail.com");
    $mail->Subject='Alerte';
    $mail->Body="test";
    if(!$mail->Send()){
      echo $mail->ErrorInfo; 
    }
    else{	  
      echo 'Mail envoyé';
    }
    unset($mail);
    ?>

  4. #4
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 227
    Points : 4 711
    Points
    4 711
    Par défaut
    je suppose que l'erreur est ligne 18 ?

    c'est que tu n'as pas configuré php.ini (SMTP)

    ps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require "C:/wamp/www/PHPMailer/class.phpmailer.php";
    avec ce code ce script ne marchera qu'en local !

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    j'ai configuré mon php.ini :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [mail function]
     ;For Win32 only.
     
    SMTP =smtp.gmail.com		
     
    smtp_port =25
    sendmail_from =mon_mail@gmail.com
    et pour le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    require "C:/wamp/www/PHPMailer/class.phpmailer.php";
    ou je dois placer le dossier du PHPMailer ?

  6. #6
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 227
    Points : 4 711
    Points
    4 711
    Par défaut
    pas sur pour gmail .. je ne connais pas pour le smtp (no du port ? ssl ou pas...)
    Normalement on met celui du fournisseur internet
    Il faut faire un test avec la fonction mail() pour voir si tout est bon.

    et pour le require , je n'ai jamais perler de déplacer le dossier !
    Mais si le site doit être hebergé sur le web (serveur linux), "C:\wamp" n'existe pas !

  7. #7
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    je l'ai essayé avec mon fournisseur mail et le même problème persiste


  8. #8
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    essaye ça :

    et si tu es en train de tester, mets en première ligne de ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    error_reporting(-1);
    afin d'avoir tous les messages d'erreurs.

  9. #9
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    voilà l'erreur que j'ai

    Strict Standards: date() [function.date]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '1.0/no DST' instead in C:\wamp\www\PHPMailer\class.phpmailer.php on line 1925

  10. #10
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    Mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error_reporting(E_ALL ^ E_STRICT);
    On y verra plus claire.

  11. #11
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    J'ai le même résultat
    avec en plus :

    SMTP Error: Could not connect to SMTP host. SMTP Error: Could not connect to SMTP host.
    est-ce que je dois modifier le timezone? car dans mon php.ini le timezone n'est pas Europe/Paris , c'est Africa/Tunis

  12. #12
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    il n'arrive pas à se connecter au serveur SMTP, donc il ne peut pas envoyer de mail....

  13. #13
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    c'est à cause du timezone ?

  14. #14
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    Nan pas de rapport.
    Tu as mis quoi comme paramètres dans php.ini ? T'as pensé à redémarrer Apache après la modification ?

  15. #15
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 227
    Points : 4 711
    Points
    4 711
    Par défaut
    Citation Envoyé par papajoker Voir le message
    Il faut faire un test avec la fonction mail() pour voir si tout est bon.
    as tu fait le test avec la fonction mail() ?
    c'est le seul moyen de voir si config est bonne

  16. #16
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    oui, je l'ai redémarré

    dans mon php.ini :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    [mail function]
     ;For Win32 only.
     
    SMTP =smtp.gmail.com		
     
    smtp_port =25

  17. #17
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    Tiens, lis ce tutoriel :

    http://www.web-development-blog.com/...ler-and-gmail/

    Je ne pense pas que tu puisses accéder au smtp de gmail sur le port 25, ça doit être en ssl....

  18. #18
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    je vous remercie pour votre effort,

    j'ai testé avec le port 465 et il m'affiche toujours qu'il ne peut pas se connecter au serveur smtp

  19. #19
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    maintenant meme la fonction de base mail() ne fonctionne pas

    J'ai essayé ce script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
      ini_set('error_reporting', E_ALL);
      ini_set('display_errors', 1);  
     
      ini_set('SMTP', 'smtp.gmail.com');
      ini_set('smtp_port', 465);  
      ini_set('sendmail_from', 'mon_mail@gmail.com'); 
     
      if (mail('destinataire@gmail.com', 'sujet', 'message')) echo 'E-mail envoyé!';
      else echo 'Echec...';
     
    ?>
    j'ai toujours : Echec

  20. #20
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    Il faudrait peut-être que tu t'identifies sur le serveur (avec username et password).

Discussions similaires

  1. [PHP 5.0] [phpmailer] Could not instantiate mail function
    Par afrodje dans le forum Langage
    Réponses: 3
    Dernier message: 31/03/2010, 11h31
  2. [PHPMailer] Could not instantiate mail function
    Par Sayrus dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 07/09/2007, 12h14
  3. Réponses: 1
    Dernier message: 13/02/2007, 10h07
  4. Réponses: 1
    Dernier message: 22/11/2006, 13h21

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