2010-07-10 7 views
5

Sto utilizzando SmtpClient in C# e invierò a potenzialmente 100s di indirizzi e-mail. Non voglio dover passare in rassegna ciascuno di essi e inviare loro una singola email.Invio a più indirizzi e-mail ma visualizzazione di un solo C#

So che è possibile inviare solo il messaggio una volta, ma non voglio che l'e-mail da indirizzo per visualizzare i 100s di altri indirizzi e-mail come questa:

Bob Hope; Brain Cant; Roger Rabbit;Etc Etc 

E 'possibile inviare il messaggio una volta e assicurarsi che solo l'indirizzo di posta elettronica del destinatario sia visualizzato nella dalla parte dell'email?

risposta

11

Hai mai sentito parlare di BCC (Blind Carbon Copy)? :)

Se si riesce a fare in modo che il vostro client SMTP può aggiungere gli indirizzi da BCC, allora il vostro problema sarà risolto :)

Sembra che ci sia un elemento di Blind Carbon Copy nella 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

Ecco un esempio che ho ottenuto da 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

Se si utilizza la classe MailMessage, utilizzare la proprietà BCC (Blind Carbon Copy).

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

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