以下のコードを使用していますが、メールは 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 に追加する電子メール アドレス。複数の電子メール アドレスは、コンマ文字 (",") で区切る必要があります。
それでMailMessage
、コンマ区切られたリストが機能するはずです。