当前位置: 首页 > 编程语言 > C#

发送内联MHTML分享

时间:2023-04-10 18:03:09 C#

发送内联MHTML我想知道是否可以通过.NET2.0MailMessage对象发送动态创建的内联MHTML文件。内联我的意思是:它应该以用户可以看到的方式发送,一旦他打开电子邮件,而不必打开/下载附件。这有点棘手,但是,你可以做到。实际上,MailMessage类只不过是解决此问题的系统CDO.Message类的包装器。也可以使用AlternateView函数,更简单:MailMessagemailMessage=newMailMessage("me@me.com","me@me.com","test","");stringContentId="wecandoit.jpg";mailMessage.Body="";AlternateViewav=AlternateView.CreateAlternateViewFromString(mailMessage.Body,null,MediaTypeNames.Text.Html);LinkedResourcelr=newLinkedResource(@"d:PersonalMyPictureswecandoit.jpg");lr.ContentId=ContentId;lr.ContentType.Name=ContentId;lr.ContentType.MediaType="图片/jpeg";av.LinkedResources.Add(lr);mailMessage.AlternateViews.Add(av);SmtpClientcl=newSmtpClient();cl.PickupDirectoryLocation=@"c:test";cl.DeliveryMethod=SmtpDeliveryMethod.SpecifiedPickupDirectory;cl.Send(mailMessage);(jdecuyper-感谢插件,因为我写了aspNetEmail)。您可以使用aspNetEmail执行此操作。您可以用MHT替换电子邮件的全部内容。你不能用System.Net.Mail做到这一点,但如果你想走商业路线,请发送电子邮件至dave@advancedintellect.com,我会告诉你如何去做。如果您想要一个开源路线,codeproject上可能有一些SMTP代码,您可以修改它们来执行此操作。基本上,您将内容注入到SMTP进程的DATA命令中。需要注意的一件事:如果您的MHT文档包含嵌入式脚本、flash、activeX对象或任何可能被您的邮件客户端阻止的内容,它可能与您在浏览器中看到的不同。您是否尝试过将一些图像添加到HTML电子邮件中?为此,您需要在电子邮件中嵌入图像。我找到了一个教程,只需几行代码即可完成。您还可以购买aspnetemail程序集。它总是帮助我处理带有嵌入式图像的电子邮件,如果出现任何问题,他们也有强大的支持团队。请记住,嵌入图片会使您的电子邮件更重,但更好:)可以通过CDO.Message(必须添加到项目参考COM库“MicrosoftCDOforWindows2000库”):protectedboolSendEmail(stringemailFrom,stringemailTo,stringsubject,字符串MHTmessage){字符串smtpAddress="smtp.email.com";尝试{CDO.MessageoMessage=newCDO.Message();//设置消息ADODB.StreamoStream=newADODB.Stream();oStream.Charset="ascii";oStream.Open();oStream.WriteText(MHTmessage);oMessage.DataSource.OpenObject(oStream,"_Stream");//设置配置ADODB.FieldsoFields=oMessage.Configuration.Fields;oFields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value=CDO.CdoSendUsing.cdoSendUsingPort;oFields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value=smtpAddress;oFields.Update();//设置其他值oMessage.MimeFormatted=true;oMessage.Subject=主题;oMessage.Sender=emailFrom;oMessage.To=emailTo;oMessage.Send();}catch(Exceptionex){//出错了}}可以通过CDO.Message(需要在工程中添加引用COM库“MicrosoftCDOforWindows2000Library”):以上为C#学习教程:发送inlineMHTML共享的所有内容,如果对大家有用,需要了解更多关于C#学习教程,希望大家多多关注——protectedboolSendEmail(stringemailFrom,stringemailTo,stringsubject,stringMHTmessage){stringsmtpAddress="smtp.email.com";try{CDO.MessageoMessage=newCDO.Message();//设置消息ADODB.StreamoStream=newADODB.Stream();oStream.Charset="ascii";oStream.Open();oStream.WriteText(MHTmessage);oMessage.DataSource.OpenObject(oStream,"_Stream");//设置配置ADODB.FieldsoFields=oMessage.Configuration.Fields;oFields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value=CDO.CdoSendUsing.cdoSendUsingPort;oFields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value=smtpAddress;oFields.Update();//设置其他值oMessage.MimeFormatted=true;oMessage.Subject=主题;oMessage.Sender=emailFrom;oMessage.To=emailTo;oMessage.Send();}抓住(Exceptionex){//somethingwrong}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: