PB avec la fonction mail()

Résolu
zatox Messages postés 663 Statut Membre -  
 Seagull29 -
Bonjour, je monte un petit site sur l' espace perso de mon FAI en l'occurence neuf. L'envoi de mail par la fonction mail() ne fonctionne pas il y a une erreur du style :"Warning: mail() has been disabled for security reasons in etc..." d'après ce que j'ai pu comprendre sur internet, les fournisseurs d'accès gratuit n'activent pas cette fonction mail(). Soit, ma question est la suivante: je voudrais tester le code retour qui doit être renvoyé par cette fonction afin d'afficher un message compréhensible par un utilisateur lamda. je ne sais pas comment je dois faire ce test, quelqu'un pourrait-il m'indiquer comment tester le code retour renvoyé par la fonction mail() et si ce code peut contenir différentes valeurs, où peut-on trouver ses valeurs pour savoir quelle est la cause exacte de l'échec ?
Configuration: Windows XP
Firefox 3.0.8

5 réponses

  1. gryzzly Messages postés 5220 Date d'inscription   Statut Contributeur Dernière intervention   1 340
     
    La cause de l'échec est simple dans ton cas : désactivé. Y'a pas à chercher plus loin.

    Pour vérifier que la fonction est (dés)activée:
    // "" à compléter
    $to = "";
    $subject = ""; 
    $content = ""; 
    $headers = "";
    if(@mail($to, $subject, $content, $headers)===FALSE){echo "echec d'envoi";}


    mail renvoie TRUE/FALSE
    tu ne pourras pas déterminer quelque est la cause de l'échec, a moins que tu ne saches que mail est desactivé (configuration php.ini).
    0
    1. Marc du camas Messages postés 2 Statut Membre
       
      Bonjour,

      est-ce qu'il y a un moyen d'envoyer quand même de mails via SFR et Joomla : le SMTP ne marche pas non plus ? Il faut renoncer carrément à SFR pour Joomla, ou il y a une solution de contournement ?

      En te remerciant,
      Marc
      0
  2. zatox Messages postés 663 Statut Membre 67
     
    Bonjour, merci pour ta réponse, c'est exactement ce que je voulais faire, j'ai donc fait un test sur mon espace perso, quand j'envoie le mail, il m'affiche bien le message que j'ai positionné si @mail = false donc ça c'est bon mais le problème c'est que juste devant mon message il affiche quand même:
    Warning: mail() has been disabled for security reasons in et ça j'aimerai qu'il ne l'affiche plus car pour un utilisateur lamda ce n'est pas très chouette. Est-ce que tu pourrais me dire s'il y a une solution pour ne pas afficher ce warning ? encore merci
    0
  3. gryzzly Messages postés 5220 Date d'inscription   Statut Contributeur Dernière intervention   1 340
     
    Normalement le @ devrait bloquer l'erreur. Ne pas utiliser la fonction mail ... ?
    0
  4. zatox Messages postés 663 Statut Membre 67
     
    Excuses moi j'avais codé comme ça:
    mail($to, $objet, $texte, $from);

    if(@mail($to, $objet, $texte, $from)==false)
    {
    echo "Problème envoi mail: veuillez réessayer plus tard";
    }
    else
    {
    echo "Mail envoyé avec succès";
    }

    alors quil fallait coder:

    @mail($to, $objet, $texte, $from);

    if(@mail($to, $objet, $texte, $from)==false)
    {
    echo "Problème envoi mail: veuillez réessayer plus tard";
    }
    else
    {
    echo "Mail envoyé avec succès";
    }

    donc utiliser la fonction @mail() à la place de la fonction mail()

    OK ça marche nickel chrome, je mets le problème résolu et je te remercie pour ton aide.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Seagull29
     
    Hello; j'ai le meme probleme sur mon formulaire de contact avec Web Acapella. Où faut'il faire les modif et mettre les lignes que tu a donné pour supprimer ce desagrement. Je precise que je suis sur des pages persos SFR
    0