2009-07-06 3 views
1

하나의 GridView와 몇 개의 이미지 (Google 차트 -png)가 포함 된 Asp.Net 페이지가 있습니다. 내 페이지의 내용을 이메일로 보내야합니다. 어떻게해야합니까? 그리드는 이메일 본문의 html 테이블이 될 수 있으며 전체가 이미지 일 수 있습니다. 그건 중요하지 않아.
도움 주셔서 감사합니다.ASP.Net - 페이지 내용으로 이메일 보내기

답변

0

Here's a .NET library . 조사 할만한 가치가있을 수 있습니다.

편집 -이 기술을 사용하는 사람과 블로그 게시물을 찾을 수있었습니다. this may help you.

이미지의 작동 여부는 이미지를 생성하기 위해 수행중인 작업에 따라 다릅니다. 아마 그들은 아마도 HttpHandler를 사용하여 동적으로 생성되거나 컨트롤에서 생성됩니까?

+0

안녕하세요. 리차드, 대답 해줘서 고맙습니다. 다행히도 제 경우에는 이미지의 URL을 Google 차트 이미지로 사용합니다. 가장 어려운 부분은 그리드라고 생각합니다. 나는 너의 제안을 조사 할 것이다. 다시 한 번 감사드립니다! –

+0

Olivier의 대답도 정확하지만 Richard의 방법은 훨씬 간단하며 작업을 훨씬 깔끔하게 처리합니다. 감사! –

2

URL을 이미지, 스타일 시트 등이 포함 된 단일 MHT 파일로 변환하고 해당 파일을 전자 메일에 첨부하는 라이브러리를 사용할 수 있습니다.

작업을 수행합니다 (그리고 그것은 제프 앳 우드 ^^ 쓴 것) 나는 (콘솔 응용 프로그램에서) ASP.NET의 외부 파일에 밖으로있는 gridview를 렌더링하는 GridView.RenderControl를 사용했던 과거

+0

감사 Olivier! 나는 당신의 제안을 최대한 빨리 조사 할 것입니다. –

1
using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls. 
WebParts; 
using System.Web.UI.HtmlControls; 
using System.Net.Mail; 

public partial class Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
//Calling the function SendMail 
    Response.Write(SendMail(" 
[email protected] "," 
[email protected]"," 
[email protected] ","Test Mail","Test Mail Body")); 
    } 

    public string SendMail(string toList, string from, string ccList, string subject, string body) 
    { 
     MailMessage message = new MailMessage(); 
     SmtpClient smtpClient = new SmtpClient(); 
     string msg = string.Empty; 
     try 
     { 
      MailAddress fromAddress = new MailAddress(from); 
      message.From = fromAddress; 
      message.To.Add(toList); 
      if (ccList != null && ccList != string.Empty) 
       message.CC.Add(ccList); 
      message.Subject = subject; 
      message.IsBodyHtml = true; 
      message.Body = body; 
      smtpClient.Host = "mail.server.com"; 
      smtpClient.Port = 25; 
      smtpClient.UseDefaultCredentials = true; 
      smtpClient.Credentials = new System.Net.NetworkCredential("[email protected] ","password");   

      smtpClient.Send(message); 
      msg = "Successful"; 
     } 
     catch (Exception ex) 
     { 
      msg = ex.Message; 
     } 
     return msg; 
    } 

}