5


0

複数の電子メールアドレスに送信するが、1つのC#のみを表示する

C#でSmtpClientを使用しており、数百の電子メールアドレスに送信する可能性があります。 それぞれをループして個別のメールを送信する必要はありません。

メッセージを1回しか送信できないことは知っていますが、アドレスからのメールに次のような数百のメールアドレスを表示させたくないのです。

Bob Hope; Brain Cant; Roger Rabbit;Etc Etc

メッセージを1回送信して、受信者のメールアドレスのみがメールの* from *部分に表示されるようにすることは可能ですか?

2 Answer


11


BCC(ブラインドカーボンコピー)を聞いたことがありますか? :)

SMTPクライアントがアドレスをBCCとして追加できることを確認できれば、問題は解決します:)

MailMessageクラスにBlind Carbon Copyアイテムがあるようです

これは、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


MailMessageクラスを使用している場合は、BCC(ブラインドカーボンコピー)プロパティを使用します。

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

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