ASP.Net - 发送包含页面内容的电子邮件

时间:2009-07-06 07:04:55

标签: asp.net

我有一个包含一个GridView和几个图像的Asp.Net页面(谷歌图表 - pngs)。 我需要通过电子邮件发送我的页面内容。我怎样才能做到这一点?网格可以是电子邮件正文中的html表格,也可以是整个图像;没关系。
谢谢你的帮助!

3 个答案:

答案 0 :(得分:2)

您可以使用将URL转换为单个MHT文件(嵌入图像,样式表等)的库,并将该文件附加到您的电子邮件中。

Here's a .NET library完成这项工作(由Jeff Atwood撰写^^)

答案 1 :(得分: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("
 dinesh.rabara@gmail.com ","
 info@server.com","
 dinesh_rabara@yahoo.com ","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("info@server.com ","password");         

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

}

答案 2 :(得分:0)

过去我曾使用GridView.RenderControl将gridview渲染到ASP.NET之外的文件中(在控制台应用程序中)。这可能值得研究。

编辑 - 我设法找到了一个使用此技术的人发布的博客文章 - this may help you

这是否适用于图像取决于您正在做什么来生成它们。据推测它们是动态生成的,可能是使用HttpHandler,还是由控件生成?