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