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 :

envoi mail à plusieurs


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut envoi mail à plusieurs
    Bonsoir

    J'aimeras savoir comment envoyer un même message à plusieurs adresse mail séparer soit par un point virgule ou un espace ou autre caractère que je voudrais bien spécifier aux internautes.


    Merci de m'aider

  2. #2
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Bonjour,

    Pourrais-tu être plus clair par rapport à ce que tu as déjà?

    Tu parles de spécifier à l'internaute, c'est que tu dois d'ores et déjà avoir un code non?

    Si oui, montres le nous.

    Saches que pour spécifier avec la fonction mail() plusieurs destinataires, il te faut utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $header="Bcc: plap@fait.net;plip@fait.net;plop@fait.net;\r\n";
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    bonjour,

    en faite l'internaute doit, dans une zone de texte, entrée les adresses email de ses destinataires et chaque mail sera séparé par un point virgule.

    Maintenant si je comprends bien en utilisant le code que vous avez proposé ce sera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $header="Bcc: {$_POST['zone_texte']};\r\n";
    ???

    mais je sais aussi kan on envoi un mail il ya le champ A: et le champ Bcc:
    si je tiens compte de Bcc ici dans ce code cela va pa poser un problème avec le champ A: ?.??

  4. #4
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    En fait, l'envoie d'un mail via la fonction mail() se fait en Anglais.

    J'entends par là qu'il n'y a pas d'emetteur, de destinataire, de contacts en copie mais des From, To, BCC ^^

    Tu auras juste à tester si l'utilisateur à rempli chacun des inputs.

    S'il est rempli, tu concatènes la valeur à BCC
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    un truc de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $adress = "{$_POST['zone_de_texte']}";
    	$sujet = "{$_POST['sujet']}";
    	$message = "contenu du message :\n";
    	$entete = "From:{$_POST['mail'_expediteur]}\n";
     
    	@mail($adress, $sujet, $message, $entete){
    la zone de texte contenant les adresse mail séparer par les points virgules

  6. #6
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Oui pour l'utilisation de la fonction mail()

    Non pour l'usage que tu veux en faire ^^

    N'oublierais-tu pas de rajouter les destinataires multiples?

    Avec isset(), tu peux tester l'existence d'une variable.

    à ton entête, rajoutes le BBC avec les différents destinataires
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    merci pour l'aide.

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    J'aimerais revenir sur ce sujet pour soumettre une préoccupation.

    Etant donné que les email seront séparés par un point virgule, comment vérifier les adresses emails entrées et aussi vérifier les points virgules.

    J'utilise ce code pour vérifier un seul email :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (empty($_POST["mails"])) {
    // il manque l'email de l'expéditeur
    $erreur="Saisissez l'adresse email...";
    }
    elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["mails"])){
    // l'adresse e-mail n'est pas valide
    $erreur="Votre adresse e-mail n'est pas valide...";
    }
    Alors aide please

  9. #9
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    ...

    Au lieu de balancer ta regex sur le $_POST... Et si tu découpais ce $_POST pour récupérer chaque adresse mail?
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  10. #10
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    donc si je comprends bien tu me conseil de plutot utiliser chaque champ de text pour un email pour mieux controler les champ avec un if (isset.... .

    pour ainsi éviter d'avoir à traiter une ensemble de email sais dans une zone tous séparés par un point virgule?

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 138
    Points : 123
    Points
    123
    Par défaut
    Je pense qu'elle/il te dit de faire un explode() avant de faire tes regexp.

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
     
    // Fonction bidon pr tester la validité d'une adresse email.
     
    function adresse_valide($email){
     
            if (substr_count($email, '@') != 1)
    			return false;
    		if (substr_count($email, '.') < 1)
    			return false;
            return true;
     
        }
     
    // Fin de la fonction bidon ^^
     
    $expediteur = $_POST['expediteur'];
    $mails = $_POST['lesadressesmail'];
    $message = $_POST[message];
     
    $tab_mails = explode(";", $mails);
     
    for($i=0;$i<sizeof($tab_mails); $i++){
     
    //Un exemple de controle
    //On regarde si les caractères sont autorisés
      if($mail_bon = preg_match("/[^0-9A-Za-z\\_\\.\\@]+$/", $tab_mails[$i])){
        if(adresse_valide($mail_bon){
              mail($mail_bon, "Sujet", $message, $expediteur);
         }
         else{
            echo "Pas de @ et/ou de . "; 
         }
      }
      else{
           echo "Vous avez mis des caractères non valide, exemple #...";
      }
    }
    C'est un exemple vite fait, je pense que ca t'aidera quand même.

    Cordialement,

  12. #12
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Oui je pensais à l'explode...

    Merci d'avoir pallié à mon manque d'explication Evilam.

    Interface, tiens nous au courant de la réussite de cette technique et n'hésites pas à poster le code si ça marche
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  13. #13
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    323
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 323
    Points : 92
    Points
    92
    Par défaut
    Oui explode()

    j'avais pas pensez à cette technique. Merci je m'y met et vous tiens informer. Merci d'avance

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

Discussions similaires

  1. [AC-2003] Envoi mail plusieurs pièces jointes
    Par vversaveau dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/06/2010, 21h00
  2. envoi mail à plusieurs destinataires
    Par ph_anrys dans le forum Langage
    Réponses: 1
    Dernier message: 17/03/2009, 22h40
  3. [Mail] envoie mail à plusieurs destinataires
    Par coco38 dans le forum Langage
    Réponses: 8
    Dernier message: 18/04/2007, 11h57
  4. [javax.mail] envoi à plusieurs destinataires
    Par michaelbob dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 29/05/2006, 12h41

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