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 :

gérer les erreurs de la fonction mail()


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 123
    Points : 54
    Points
    54
    Par défaut gérer les erreurs de la fonction mail()
    Bonjour,

    Je souhaiterais savoir si il est possible de gérer les faux mails d'expéditeur avec la fonction mail() ?

    Merci par avance

  2. #2
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu veux dire : "detecter qu'une adresse email n'existe pas" ?
    Alors non la fonction mail ne te permettra pas de faire ça.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 123
    Points : 54
    Points
    54
    Par défaut
    merci pour cette réponse mais donc quand une adresse n'est pas valide (mais au bon format) est-ce que la fonction se coupe ? ou elle envoi tout de même un mail?

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    "Pas au bon format" c'est autre chose encore mais oui la fonction mail essaiera d'envoyer le mail quand même.

    Si tu veux analyser le retour d'erreur, utilise la classe PHPMailer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 123
    Points : 54
    Points
    54
    Par défaut
    Merci pour ta réponse mais c'est la première fois que j'utilise cette fonction... J'ai donc une question peut être un peu bête, est-il possible d'envoyer un mail html contenant une image (image personnalisée selon le destinataire) cliquable avec la fonction mail() ? ou il est préférable de passer par PHPmailer ?

    P.S. : il faut peut-être créer un nouveau sujet pour ma nouvelle question ?

  6. #6
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans tous les cas PHPMailer facilite grandement l'envoi de mail en PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Bien sûr que c'est possible mais il est plus facile d'apprendre à utiliser PHPMailer que de faire le code correspondant. J'ai pas de meilleur conseil que celui donné par sabotage.
    Si c'est par curiosité ou que tu tiens à faire le code toi même tu trouveras ton bonheur avec les mots clés "tuto mail php" dans un moteur de recherche.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 123
    Points : 54
    Points
    54
    Par défaut
    Merci pour vos réponses donc j'utilise PHPMailer mais je rencontre un petit soucis lors du choix des destinataires ...

    Je souhaite choisir les destinataires depuis la base de donnée faire un while sur toute les adresses de ma table. Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while($array=mysql_fetch_array($result))
    {
    $mail->AddAddress($array["mail"]);
    }
    $mail -> Send;
    Mon soucis est que le nombre de mail envoyé (à chaque personne) augmente tout le long du while ... comment faire ... ?

    Merci par avance pour votre aide

  9. #9
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu veux dire que le 10ème destinataire recoit 10 fois le mail ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 123
    Points : 54
    Points
    54
    Par défaut
    oui tu as tout compris ... problème avec le while ?

  11. #11
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Montre nous le code entier.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 123
    Points : 54
    Points
    54
    Par défaut
    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
    require_once('/phpmailer/class.phpmailer.php');
    $mail = new PHPMailer();
    $mail->CharSet = "utf-8";
    $mail->IsHTML(true);
    $mail->SetFrom('xxx@gmail.fr', 'Nom Prénom');
    $mail->Subject = 'objet';
    $requete = "select * from tablel";
    $result=mysql_query($requete);
     
    while($array=mysql_fetch_array($result))
    {
     
    $mail->Body = 'Bonjour'.$array["prenom"].' '.$array["nom"];
     
    $mail->AddAddress($array["mail"]);
    }
     
    $mail->Send();
    voilà le code ...

  13. #13
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Et si tu mettais $mail->Send(); à l'intérieur de la boucle ?

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 123
    Points : 54
    Points
    54
    Par défaut
    Merci, je test demain mais quand j'y penses c'est plus logique effectivement...

    Par contre j'ai une autre question par curiosité est-il possible d'envoyer un nombre important de mail (environ 10 000 destinataires...) ?

  15. #15
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 123
    Points : 54
    Points
    54
    Par défaut
    Bonsoir à tous désolé pour le retard j'ai eu quelques soucis de connexion. Donc j'ai essayé d'ajouter le
    dans la boucle.

    J'ai un résultat un peu bizarre le mail est envoyé au premier contact ensuite au premier et au seconde ensuite au premier, second et troisième etc.

    voila mon nouveau code qui maintenant fonctionne j'ai modifié la position du while mais c'est peut être un peu long de régénérer la partie "fixe" du mail à chaque fois ... des idées ? ^^

    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
     
    require_once('/phpmailer/class.phpmailer.php');
     
    $requete = "select * from table";
    $result=mysql_query($requete);
     
    while($array=mysql_fetch_array($result))
    {
     
    $mail = new PHPMailer();
    $mail->CharSet = "utf-8";
    $mail->IsHTML(true);
    $mail->SetFrom('xxx@gmail.fr', 'Nom Prénom');
    $mail->Subject = 'objet';
     
    $mail->Body = 'Bonjour'.$array["prenom"].' '.$array["nom"];
     
    $mail->AddAddress($array["mail"]);
    $mail->Send();
     
    }

  16. #16
    Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 123
    Points : 54
    Points
    54
    Par défaut
    Je me pose une question...
    Est-ce qu'il est plus intéressant de créer un nouveau sujet pour ma question ? pour avoir plus de visibilité ou aucun intérêt?

  17. #17
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Ben tu as essayé autrement et ça ne fonctionnait pas, maintenant que tu as trouvé une solution je vois pas ce qui te dérange. Je n'utilise pas cette classe donc je peux pas te répondre catégoriquement sur la meilleure façon de l'utiliser mais ce que je sais c'est que ce qui est long c'est d'envoyer le mail (avec n'importe quel code ou classe que l'on utilise). Donc l'instanciation de la classe dans ta boucle c'est négligeable par rapport au temps d'envoi d'un mail. Peut-être avec un code très optimisé on gagnerait un peu en ressource mémoire mais en temps d'exécution on gagnerait rien.

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

Discussions similaires

  1. [Mail] les erreurs de la fonction mail()
    Par demonaco dans le forum Langage
    Réponses: 3
    Dernier message: 23/08/2006, 09h33
  2. [Mail] erreur avec utilisation fonction mail
    Par taka10 dans le forum Langage
    Réponses: 7
    Dernier message: 12/07/2006, 16h19
  3. Proc. Stock. : Gérer les erreurs
    Par audreyc dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 29/03/2006, 14h51
  4. gérer les erreurs intebase avec delphi
    Par mondanikoffi dans le forum Bases de données
    Réponses: 1
    Dernier message: 14/12/2004, 15h46

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