SQLdatabase から列データのみを取得し、文字列またはラベルにホルダーとして格納するつもりです。
CASE: データベース "tblUser" WHERE apple = 1 からすべての電子メール アドレスを選択し、"emaillist" 文字列ホルダーに保存してから、mail.to.add(emaillist); で添付します。
注: ExecuteScalar では、データベースの最初の行のみを取得できます。したがって、メール アドレスの最初の行のみを取得できます。(例:user@user.com)
期待される結果: 「user@user.com、testing.gmail.com、admin@admin.com」などで構成されるメールリスト。
私のコード:
String status = "1";
SqlConnection conn100 = new SqlConnection("Server=localhost;Integrated Security=true;database=WebsiteDatabase");
conn100.Open();
SqlCommand cmd100 = conn100.CreateCommand();
cmd100.CommandText = "select emailaddress from tblUser where apple= '" + status + "'";
string selected100 = cmd100.ExecuteScalar().ToString();
String emailcontent = "";
emailcontent = "" + selected1 + "- Highlight: " + selected2;
String emaillist = "" + selected100;
//Create a new MailMessage in order to send email
MailMessage mail = new MailMessage();
//The recipient of this email
mail.To.Add("recipient@gmail.com" + emaillist);
//The sender of this email
mail.From = new MailAddress("sender@gmail.com");
//The subject of this email
mail.Subject = "Latest Product";
//The email's content
string body = "New Product added! " + emailcontent;
mail.Body = body;
mail.IsBodyHtml = true;
//Create new smtpClient and use smtp services
SmtpClient smtp = new SmtpClient();
//SMTP host (Gmail)
smtp.Host = "smtp.gmail.com";
//SMTP port
smtp.Port = 587;
smtp.UseDefaultCredentials = false;
//Sender Email and password
smtp.Credentials = new System.Net.NetworkCredential("sender@gmail.com", "password");
//Enable SSL in order to have secure transmission
smtp.EnableSsl = true;
//Send the email
smtp.Send(mail);