簡體   English   中英

如何將 SQL Server 數據庫連接到我的電子郵件系統?

[英]How do I connect the SQL Server database to my e-mail system?

將我的數據庫連接到我的電子郵件系統時遇到問題。 我已經設置了一個數據庫連接和一個SqlDataSource連接,但是我不確定如何在我的 aspx.cs 頁面上引用它,因為我想向存儲在數據庫中的電子郵件發送電子郵件。

<asp:SqlDataSource ID="emailresult" runat="server" 
     ConnectionString='<%$ ConnectionStrings:databaseconnection %>' 
     SelectCommand ="SELECT [ID], [email], [role] FROM [emailtest]">
</asp:SqlDataSource>

protected void EmailTestButton_Click(object sender, EventArgs e)
{

    try
    {
        MailMessage mailMessage = new MailMessage();
        mailMessage.To.Add("");
        mailMessage.To.Add("");
        mailMessage.From = new MailAddress("studiodefault@hotmail.com");
        mailMessage.Subject = "Scrum Management Studio - Role Confirmation";
        mailMessage.IsBodyHtml = true;
        mailMessage.Body = "Hello, <br /><br /> You have been assigned the role of <b>[ROLE]</b>  <br /><br /> \n\nKind Regards, <br />The Scrum Management Studio Team" ;
        mailMessage.Priority = MailPriority.High; 
        SmtpClient smtpClient = new SmtpClient("smtp-isp.com");
        smtpClient.Send(mailMessage);
        Response.Write("Email has been successfully sent");
    }
    catch (Exception ex)
    {
        Response.Write("Could not send the email - error: " + ex.Message);
    }
}

您可以將“emailresult”SqlDataSource 轉換為 DataTable 並從那里查詢

var dt = ((DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty)).Table;
var emails = from e in dt.AsEnumerable()
                where e.Field<int>("ID") == 1
                select e.email;

foreach (var email in emails)
{
    mailMessage.To.Add(email);
}

正如其他人已經評論過的那樣,您必須將您想要做的事情分成不同的部分:

  1. 從您的數據庫中獲取電子郵件地址
  2. 發送電子郵件。 (已經在那了)

所以,你想知道如何從你的 sqldatasource 獲取電子郵件,這將是這樣的(未經測試):

DataView dv = emailresult.Select(DataSourceSelectArguments.Empty);
DataTable dt = dv.ToTable();
String Email = Convert.ToString(dt.rows[0]["Email"]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM