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 de mail et copie cachée


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Points : 77
    Points
    77
    Par défaut Envoi de mail et copie cachée
    Bonsoir à tous,

    J'envoie pas mal de mail via php, grâce à la fonction "mail".
    Jusqu'à présent, je récupérait la liste des personnes à qui envoyer le mail, j'en faisait une chaîne de caractère et hop, je passait ça en destinataire.
    Mais récemment je me suis rendu compte que tout le monde voyait tous les destinataires....
    J'aimerai du coup que chaque personne reçoive une copie du mail de manière indépendante et comme si ils étaient seuls destinataires !!

    La seule solution propre que j'ai trouvé, c'est de boucler sur la commande mail pour chaque user, mais j'en ai une quinzaine et du coup le script php met plus de 40 secondes pour envoyer tous les mails pendant que l'utilisateur voit un gif loading en attendant.... Donc pas possible non plus.

    Bref voici mon code actuel, comment faire du coup, pour mettre tout le monde en copie propre ?
    Merci d'avance..

    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
     
    $mail_add = array('mail1@xxxxx.com','mail2@xxxxx.com',...);
    for ($i=0;$i<count($mail_add);$i++) {
    	$liste_mail_add .= (($i != (count($mail_add) - 1)) && ($mail_add[$i] != '')) ? $mail_add[$i].',' : $mail_add[$i];
    }
    $liste_mail_add = (substr($liste_mail_add, -1) == ',') ? rtrim($liste_mail_add,',') : $liste_mail_add;
    ini_set('SMTP','smtp.xxxx.fr');
    $Corps = "TEST\n\n";
    $Reponse = stripslashes($Corps);
    $prenom = "Moi";
    $nom = "Moi";
    $email = $usered . "@xxxxx.com";
    $sujet = "TEST !";
    $from = "From: $prenom $nom<$email>\r\n";
    $from .= "Reply-To: $prenom $nom <$email>\n";
    $from .= "X-priority:3\n";
    $from .= "Content-type: text/html; charset=utf-8\n";
    $texte = str_replace("\n", "<br>", $Reponse);
    if (mail($liste_mail_add,$sujet,$texte,$from));

  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
    Ton début est vilain
    Utilise implode() et à la fin utilise nl2br() pour convertir tes sauts de ligne.

    Pour les copies carbones invisibles, il faut mettre tes adresses en Bcc :
    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
    $mail_add = array('mail1@xxxxx.com','mail2@xxxxx.com',...);
    $liste_mail_add = implode(',', $mail_add);
     
    ini_set('SMTP','smtp.xxxx.fr');
    $corps = "TEST\n\n";
    $prenom = "Moi";
    $nom = "Moi";
    $email = $usered . "@xxxxx.com";
    $sujet = "TEST !";
    $header = "From: $prenom $nom<$email>\r\n";
    $header .= "Reply-To: $prenom $nom <$email>\r\n";
    $header .= "X-priority:3\n";
    $header .= "Content-type: text/html; charset=utf-8\r\n";
    $header .= "Bcc: " . $liste_mail_add . "\r\n";
    $texte = nl2br($corps);
    if (mail(tonadresse@domain.tld,$sujet,$texte,$from));

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Points : 77
    Points
    77
    Par défaut
    Merci pour ta réponse mais à quoi correspond .tld ?

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 719
    Points : 43 820
    Points
    43 820
    Par défaut
    .tld veut dire Top Level Domain. .com, .org, .fr ont des TLD

    Donc dans l'exemple tu remplace tonadresse@domain.tld par ta vraie adresse d'émission.

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Points : 77
    Points
    77
    Par défaut
    En fait je me suis mal exprimé.
    J'aimerai que l'adresse destination soit "vide", et qu'il n'y ait qu'en copie caché les vrais utilisateurs.
    Sinon il vont voir un mail adressé à tonadresse@domain.tld sans en être le vrai "destinataire" ?

    En fait, je veux que tonadresse@domain.tld n'apparaissent pas dans les destinataire, et ne reçoive pas les mails non plus, comment faire ?

    EDIT : J'ai finalement trouvé. En fait, avant, si on ne met pas de bcc, et le champs $to à vide, le mail ne part pas et on trouve un joli dead.letter.
    Si on renseigne le bcc comme ci-dessous, plus la peine de mettre un $to, il suffit de le laisser à vider.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (mail('',$sujet,$texte,$from));
    C'est parfait, ça fonctionne, merci beaucoup

Discussions similaires

  1. [Mail] phpmailer copie cachée
    Par sam01 dans le forum Langage
    Réponses: 2
    Dernier message: 22/01/2019, 20h20
  2. Envoi de mail en copie caché avec asp.net
    Par Naceur84 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 20/06/2011, 11h44
  3. Envoi d'e-mail en copie caché
    Par bug_warrior dans le forum Langage
    Réponses: 4
    Dernier message: 07/12/2008, 14h27
  4. Réponses: 2
    Dernier message: 08/01/2007, 17h39
  5. E-mail : envoi de copie et copie cachéé
    Par malhivertman1 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 02/01/2006, 08h08

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