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 :

[Mail] Fonction mail inconnue


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 44
    Points : 34
    Points
    34
    Par défaut [Mail] Fonction mail inconnue
    Bonjour à tous !

    Voilà mon problème !
    PHP Fatal error: Call to undefined function mail()

    Serveur Linux avec php 5 !

  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Tu es chez un hébergeur ? Si c'est le cas peut-être qu'il a désactivé la fonction, renseigne-toi.
    http://php.developpez.com/faq/?page=mail#envoi-mail

  3. #3
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Non défini veut dire qu'elle est existe pas sur le serveur ou qu'elle est pas activé. Aussi simple que ca.

    Pour plus d'informations tourne toi du coté phpinfo()

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    effectivement, le php.ini que je modifiez n'était pas le bon mais maintenant, plus de message d'erreur mais plus rien du tout !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    echo 'coucou';
    if(mail($to,$obj, $msg))
    {
    	die('ok');
    }
    else
    {
    	die('erreur');
    }
    die('fin');
    J'obtiens juste "coucou" et aucun die() n'est exécuté.
    Comment puis je savoir ce qui fais planter.
    Apparement une exception c'est produit mais sans générer d'erreur, sachant que j'ai l'affiche complet des erreurs normalement.


    PS : C'est sur un serveur perso !

  5. #5
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    bonjour,
    voila ce que tu va faire, tu va copier coller le contenu de ce fichier (*.txt),dans ton fichier (php.ini), si ca marche c bon, sinon, tu dois voir les options de la fonction mail()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mail("destinataire","sujet","message","destinateur")
    Fichiers attachés Fichiers attachés

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    J'obtiens
    Call to undefined function mail()
    Mon serveur étant en linux.

    Est ce que je dois renseigner :

    ;For Win32 only.
    SMTP = smtp.domain.net

    ; For Win32 only.
    sendmail_from = envoyeur@yahoo.fr
    ou

    ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
    sendmail_path = /usr/lib/sendmail

  7. #7
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    sendmail_path = /usr/sbin/sendmail ou /usr/lib/sendmail,
    est ce que t'as deja modifié les option de la fonction mail()

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mars 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Akramweb
    sendmail_path = /usr/sbin/sendmail ou /usr/lib/sendmail,
    est ce que t'as deja modifié les option de la fonction mail()

    Non, je n'est rien fait d'autre.

    a quoi penses tu ?

  9. #9
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Moi je pense : jettes un oeil ici : Comment envoyer un mail ?

    Ceci est faux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mail("destinataire","sujet","message","destinateur")
    C'est plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     mail("destinataire","sujet","message",$entete)
    et les entetes je vous conseille de jetter un oeil sur le lien plus haut

  10. #10
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    oui je sais, Mr je sais tout, mais c'etais juste une façon pour faciliter la tache à mikaelm

  11. #11
    Nouveau membre du Club
    Inscrit en
    Mars 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Kerod
    Moi je pense : jettes un oeil ici : Comment envoyer un mail ?

    Ceci est faux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mail("destinataire","sujet","message","destinateur")
    C'est plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     mail("destinataire","sujet","message",$entete)
    et les entetes je vous conseille de jetter un oeil sur le lien plus haut

    je croyais que les entetes n'étaient pas obligatoire ???

    Moi, j'appelle juste avec :

    mail("destinataire","sujet","message")

    Je vais qd même regarder avec les entetes !

    Après avoir ajouté les entetes : RIEN de plus !

  12. #12
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Les entetes ne sont pas obligatoire, mon exemple était pour la mauvaise réponse donnée plus haut.

    Aussi le destinataire doit etre un mail et nom un nom ou un mot

    je le dit on sait jamais

  13. #13
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    ok mikaelm,
    si tu veux essayer cette exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $destinataire="....@mail.com";
    $sujet="test";
    $message="salut bla bla";
    $destinateur="ton@mail.com";
     
    mail($destinataire,$sujet,$message,$destinateur);

  14. #14
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Toujours faux je dis. L'entete ne doit pas être définit de cette manière. Je te renvoi encore à mail() ou à la Q/R de la FAQ qui est correcte

  15. #15
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    juste une chose c'est que moi j'utilise toujours cette fonction et ca marche.

  16. #16
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Citation Envoyé par PHP.NET
    additional_headers (optionnel) CHaîne à insérer à la fin des en-têtes du mail.
    Ce paramètre est typiquement utilisé pour ajouter des en-têtes supplémentaires (From, Cc et Bcc). Les en-têtes supplémentaires doivent être séparés par un caractère CRLF (\r\n).
    Note : Lors de l'envoi d'un mail, le mail doit contenir un en-tête From. Il peut être défini par le paramètre additional_headers, ou un par défaut peut être défini dans le php.ini.
    Ne pas faire ceci causera un message d'erreur similaire à Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. L'en-tête From définit également l'en-tête Return-Path sous Windows.
    Note : Si le message n'est pas reçu, essayez d'utiliser uniquement un caractère LF (\n). Quelques agents de transfert de mail Unix de mauvaise qualité remplacent le caractère LF par le caractère CRLF automatiquement (ce qui revient à doubler le caractère CR si le caractère CRLF est utilisé). Ceci doit être un dernier recours car cela ne correspond pas à la RFC 2822.
    additional_parameters (optionnel) Le paramètre additional_parameters peut être utilisé pour passer des paramètres additionnels au programme configuré à être utilisé pour envoyer les mails en utilisant le paramètre de configuration sendmail_path. Par exemple, ceci peut être utilisé pour définir l'enveloppe de l'adresse de l'expéditeur lors de l'utilisation de sendmail avec l'option -f.
    L'utilisateur sous lequel tourne le serveur web doit être ajouté en tant qu'utilisateur de confiance dans la configuration de sendmail afin que l'en-tête X-Warning ne soit pas ajouté au message lorsque l'enveloppe de l'expéditeur (-f) est défini en utilisant cette méthode. Pour les utilisateurs de sendmail, ce fichier est /etc/mail/trusted-users.
    Ca fonctionne peut-être mais c'est peut-être aussi grâce au serveur .Mais est-ce que tu recois bien le destinataire ? Car tu dois spécifier le From dans un header et etc...En gros c'est une mauvaise utilisation de la fonction mail. C'est pas moi qui le dit mais le constructeur

  17. #17
    Nouveau membre du Club
    Inscrit en
    Mars 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    Ok, je repend, je viens de constater qqc !


    Bien que les erreurs doivent s'afficher dans le navigateur, apache ne le fait pas toujours.

    Donc, j'en suis toujours à :

    PHP Fatal error: Call to undefined function mail() in ... on line 40
    La seule différence c'est quavant, c'était affiché dans le navigateur et plus maintenant !

    [mail function]
    ; For Win32 only.
    ;SMTP = localhost

    ; For Win32 only.
    ;sendmail_from = me@example.com

    ; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
    sendmail_path = /usr/sbin/sendmail
    Extrait de phpinfo();
    sendmail_from no value no value
    sendmail_path /usr/sbin/sendmail /usr/sbin/sendmail
    Pitiéééééééééééé aidez moi

    Sachant que j'ai vérifié que sendmail se trouve bien à cet emplacement.

  18. #18
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Ton phpinfo te dit quoi sur les fonctions mail ?

    Et les erreurs il faut activer l'option dans le php.ini.
    Fais une recherche sur error_reporting Comment empêcher l'affichage des erreurs PHP ?

  19. #19
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    là tu veux dire:"je recois le destinateur"
    oui c'est normal,
    parce que la variable $destinateur reçoit
    $destinateur="From $var";

  20. #20
    Nouveau membre du Club
    Inscrit en
    Mars 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 44
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Kerod
    Ton phpinfo te dit quoi sur les fonctions mail ?

    Et les erreurs il faut activer l'option dans le php.ini.
    Fais une recherche sur error_reporting Comment empêcher l'affichage des erreurs PHP ?
    sendmail_from no value
    sendmail_path /usr/sbin/sendmail

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/03/2009, 19h21
  2. [Mail] [fonction mail] Pièces jointes
    Par poussinphp dans le forum Langage
    Réponses: 2
    Dernier message: 30/12/2005, 12h15
  3. [Mail] Fonction mail() et le spam
    Par tonios dans le forum Langage
    Réponses: 1
    Dernier message: 12/12/2005, 22h51
  4. [Mail] Fonction mail() et pièce jointe
    Par allyson dans le forum Langage
    Réponses: 16
    Dernier message: 09/11/2005, 15h05
  5. Réponses: 5
    Dernier message: 29/10/2005, 16h44

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