2010-07-10 29 views
5

J'utilise le SmtpClient en C# et j'envoie potentiellement 100 adresses e-mail. Je ne veux pas devoir passer en revue chacun d'eux et leur envoyer un courriel individuel.Envoyer à plusieurs adresses e-mail mais n'en afficher qu'une seule C#

Je sais qu'il est possible d'envoyer uniquement le message une fois, mais je ne veux pas l'e-mail de l'adresse pour afficher les 100s d'autres adresses e-mail comme ceci:

Bob Hope; Brain Cant; Roger Rabbit;Etc Etc 

Est-il possible d'envoyer le message Une fois et assurez-vous que seule l'adresse e-mail du destinataire est affichée dans le de partie de l'e-mail?

Répondre

11

Vous avez déjà entendu parler de BCC (Blind Carbon Copy)? :)

Si vous pouvez vous assurer que votre client SMTP peut ajouter les adresses comme BCC, votre problème sera résolu :)

Il semble y avoir un élément Blind Carbon Copy dans la classe MailMessage

http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.aspx

http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.bcc.aspx

Voici un exemple que je suis arrivé de MSDN

public static void CreateBccTestMessage(string server) 
     { 
      MailAddress from = new MailAddress("[email protected]", "Ben Miller"); 
      MailAddress to = new MailAddress("[email protected]", "Jane Clayton"); 
      MailMessage message = new MailMessage(from, to); 
      message.Subject = "Using the SmtpClient class."; 
      message.Body = @"Using this feature, you can send an e-mail message from an application very easily."; 
      MailAddress bcc = new MailAddress("[email protected]"); 

       //This is what you need 
       message.Bcc.Add(bcc); 
       SmtpClient client = new SmtpClient(server); 
       client.Credentials = CredentialCache.DefaultNetworkCredentials; 
       Console.WriteLine("Sending an e-mail message to {0} and {1}.", 
        to.DisplayName, message.Bcc.ToString()); 
      try { 
      client.Send(message); 
      } 
      catch (Exception ex) { 
      Console.WriteLine("Exception caught in CreateBccTestMessage(): {0}", 
         ex.ToString()); 
      } 
     } 
3

Si vous utilisez la classe MailMessage, utilisez la propriété BCC (Blind Carbon Copy).

MailMessage message = new MailMessage(); 
MailAddress bcc = new MailAddress("[email protected]"); 

// Add your email address to BCC 
message.Bcc.Add(bcc);