ASP.NET Chart控件(使用嵌入式图表控件图像发送EMail)

时间:2009-05-15 18:01:42

标签: asp.net

我正在使用asp.net图表控件,我很满意。我的客户现在问我是否可以在我的网页上添加一个电子邮件按钮发送一封包含在其中的图表的电子邮件。我有什么想法可以做到这一点?感谢。

3 个答案:

答案 0 :(得分:2)

图表组件实际上在请求图表时生成图像。然后,它会将此图像保留到文件系统,或者只是将其保存在内存中。那部分是可配置的。

您可以让它生成图表,然后从中获取文件参考。从那里你有两个选择。要么您的电子邮件通过它的网址引用引用该文件,要么将其嵌入到实际的电子邮件中。这也可以由邮件客户端配置。

答案 1 :(得分:2)

您可以将图像保存到某处并加载并嵌入邮件中,如下所示:

        private void SendMail()
        {
            //Your mail body is created with help of a StringBuilder which will contain the img tag:
            //Suppose the mailContent is the StringBuilder object and has the html body etc already appended....
            //you would need to append something like following:

            //mailContent.Append("<td><img src=\"cid:IMAGE_ID\"></td>");
            //string body = mailContent.ToString();


            string smtpServer = "mailhost.my.domain.net";
            string emailFrom = "blah.blah@blah.com";
            string emailTo = "yoyo@yoyo.com";


            MailMessage msg = new MailMessage(emailFrom, emailTo, "TestMail...", body);

            msg.IsBodyHtml = true;

            //Adding attachments by loading from file 
            Attachment item = new Attachment("Images/Logo.JPG");
            item.ContentDisposition.Inline = true;
            item.ContentDisposition.DispositionType = DispositionTypeNames.Inline;
            item.ContentId = "IMAGE_ID";
            item.ContentType.MediaType = "image/jpeg";
            item.ContentType.Name = "Logo.JPG";

            msg.Attachments.Add(item);

            SmtpClient client = new SmtpClient(smtpServer);
            client.Send(msg);

        }

答案 2 :(得分:0)

您可以存储图表数据并创建指向要加载数据的页面的链接,也可以获取创建页面的HTML并将其加载到电子邮件中。并非每个用户都认为HTML是电子邮件,因此向他们发送可以绘制数据图表的页面的链接可能会更安全。