首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送内联MHTML

发送内联MHTML
EN

Stack Overflow用户
提问于 2009-05-27 15:25:38
回答 5查看 7.4K关注 0票数 2

我想知道是否可以通过MHTML2.0MHTML2.0 MailMessage object发送一个动态创建的内联.NET文件。

内联我的意思是:它应该以一种用户可以看到的方式发送,一旦他打开电子邮件,而不需要打开/下载附件。

EN

回答 5

Stack Overflow用户

发布于 2009-05-28 13:46:58

(jdecuyper --谢谢你的插件,因为我写了aspNetEmail)。

您可以使用aspNetEmail来实现这一点。您可以使用MHT替换电子邮件的全部内容。

你不能用System.Net.Mail做到这一点,但如果你想走商业路线,在dave@advancedintellect.com上给我发一封电子邮件,我会向你展示如何做到这一点。

如果你想走开源路线,可能有一些代码项目上的SMTP代码,你可以修改它来实现这一点。基本上,您将把内容注入到SMTP进程的DATA命令中。

需要注意的一点是:如果您的MHT文档中嵌入了脚本、flash、activeX对象或任何可能被邮件客户端阻止的内容,则它可能不会呈现与您在浏览器中看到的内容相同的内容。

票数 3
EN

Stack Overflow用户

发布于 2009-06-02 06:31:44

这有点棘手,但是的,你可以做到。实际上,MailMessage类只不过是系统的CDO.Message类之上的一个包装器,它可以做到这一点。你也可以使用AlternateView功能,它更简单:

代码语言:javascript
复制
MailMessage mailMessage = new MailMessage("me@me.com"
    ,"me@me.com"
    ,"test"
    ,"");
string ContentId = "wecandoit.jpg";
mailMessage.Body = "<img src=\"cid:" + ContentId + "\"/>";
AlternateView av = AlternateView.CreateAlternateViewFromString(mailMessage.Body
    ,null
    ,MediaTypeNames.Text.Html);
LinkedResource lr = new LinkedResource(@"d:\Personal\My Pictures\wecandoit.jpg");
lr.ContentId = ContentId;
lr.ContentType.Name = ContentId;
lr.ContentType.MediaType = "image/jpeg";
av.LinkedResources.Add(lr);
mailMessage.AlternateViews.Add(av);
SmtpClient cl = new SmtpClient();
cl.PickupDirectoryLocation = @"c:\test";
cl.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
cl.Send(mailMessage);
票数 3
EN

Stack Overflow用户

发布于 2009-05-27 16:00:37

您是否正在尝试将一些图像添加到html电子邮件中?

要做到这一点,你需要在你的电子邮件中嵌入图像。我找到了一个tutorial,只需几行代码即可完成此任务。您还可以购买aspnetemail程序集。发送带有嵌入图像的电子邮件一直对我有很大帮助,如果出现任何问题,他们也有一个优秀的支持团队。

请记住,嵌入图像会使您的电子邮件更重,但更好:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/916388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档