C# を使用して複数のアドレス/受信者にメールを送信できない 質問する

C# を使用して複数のアドレス/受信者にメールを送信できない 質問する

以下のコードを使用していますが、メールは 1 通しか送信されません。メールを複数のアドレスに送信する必要があります。

複数のメールを取得するには、次を使用します。

string connectionString = ConfigurationManager.ConnectionStrings["email_data"].ConnectionString;
OleDbConnection con100 = new OleDbConnection(connectionString);
OleDbCommand cmd100 = new OleDbCommand("select top 3 emails  from bulk_tbl", con100);
OleDbDataAdapter da100 = new OleDbDataAdapter(cmd100);
DataSet ds100 = new DataSet();
da100.Fill(ds100);

    for (int i = 0; i < ds100.Tables[0].Rows.Count; i++)
    //try
    {
        string all_emails = ds100.Tables[0].Rows[i][0].ToString();
        {
            string allmail = all_emails + ";";
            Session.Add("ad_emails",allmail);
            Response.Write(Session["ad_emails"]);
            send_mail();
        }
    }

メールを送信するには以下を使用します:

string sendto = Session["ad_emails"].ToString();

MailMessage message = new MailMessage("[email protected]", sendto, "subject", "body");
SmtpClient emailClient = new SmtpClient("mail.smtp.com");
System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential("abc", "abc");
emailClient.UseDefaultCredentials = true;
emailClient.Credentials = SMTPUserInfo;
emailClient.Send(message);

ベストアンサー1

MailMessage問題は、コンストラクターが単一のアドレスを表す文字列のみを受け取るのに、セミコロンで区切られたアドレスのリストをコンストラクターに提供していることです。

電子メール メッセージの受信者のアドレスを含む文字列。

または、カンマで区切られたリスト(下記参照)も可能です。

ソース

複数のアドレスを指定するには、ToプロパティはMailAddressCollectionただし、これらのページの例ではそれがあまり明確に示されていません。

message.To.Add("[email protected], [email protected]"));

MailAddressCollection に追加する電子メール アドレス。複数の電子メール アドレスは、コンマ文字 (",") で区切る必要があります。

MSDNページ

それでMailMessageコンマ区切られたリストが機能するはずです。

おすすめ記事