向多个电子邮件地址发送电子邮件,但仅显示一个C#

7
我正在使用C#中的SmtpClient,并将发送给可能有数百个电子邮件地址。我不想每次循环并单独发送电子邮件。
我知道只发送一条消息是可能的,但我不希望电子邮件地址显示100多个其他电子邮件地址,像这样:
Bob Hope; Brain Cant; Roger Rabbit;Etc Etc

是否可以仅发送一次邮件并确保只有接收方的电子邮件地址在邮件的发件人部分中显示?

2个回答

13

你听说过BCC(秘密抄送)吗?如果你的SMTP客户端能够将地址添加为BCC,则可以解决你的问题。MailMessage类中似乎有一个“Blind Carbon Copy”项,可以参考以下链接:

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

以下是我从MSDN获取的示例:

public static void CreateBccTestMessage(string server)
        {
            MailAddress from = new MailAddress("ben@contoso.com", "Ben Miller");
            MailAddress to = new MailAddress("jane@contoso.com", "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("manager1@contoso.com");

                //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
如果您正在使用MailMessage类,请使用BCC(密件抄送)属性。
MailMessage message = new MailMessage();
MailAddress bcc = new MailAddress("manager1@contoso.com"); 

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接