2017-10-24 3 views
1

내 데이터베이스를 이메일 시스템에 연결하는 데 문제가 있습니다. 데이터베이스 연결과 SqlDataSource 연결을 설정했지만, 데이터베이스에 저장된 전자 메일로 전자 메일을 보내려는 경우 aspx.cs 페이지에서이를 참조하는 방법을 잘 모릅니다. 다른 사람이 이미 주석으로SQL Server 데이터베이스를 전자 메일 시스템에 어떻게 연결합니까?

<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("[email protected]"); 
     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); 
    } 
} 
+4

거기에서 생각 생각 : 데이터베이스에서 문자열 (이메일)을 반환하는 메서드를 작성하고 (stringreturned) 새 MailAddress에서 사용할 수 있습니다; –

+0

정확히 여기에 갇혀 있습니까? 전자 메일 주소 읽기 -> MailAddress에서 설정 -> 전자 메일 보내기 – Liam

+0

도움이되지 않습니다! – SHarvey43

답변

0

, 당신은 당신이 별도의 지역에서 수행 할 작업을 분할 할 수 있습니다

  1. 이메일 보내기 데이터베이스
  2. 에서 전자 메일 주소를 취득합니다. (이미) 당신이 알아 원하는 그래서

, 그것을 어떻게 (테스트하지) 이런 일이 될 것이다,의 SqlDataSource에서 이메일을 얻을 수 있습니다 :

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

당신은 변환 할 수 있습니다 " emailresult "DataTable에로의 SqlDataSource 및 쿼리 THINK

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); 
} 
+0

더 자세히 설명해 주시겠습니까? 시작하는 단지 기본적인 프로그래머. – SHarvey43

+0

데이터 소스에있는 select 문과 일치하도록 코드가 수정되었습니다. 코드 상단에서 System.Linq을 사용하고 있는지 확인하십시오. – proxies

관련 문제