Aspose.Email for .NET更新至v20.6,实施对EWS客户端的AQS搜索的支持,支持在MHTML中获取电子邮件类别,5大功能得以增强,欢迎下载体验。
Aspose.Email for .NET是一套完整的电子邮件处理控件,用于构建跨平台应用程序,无需使用Microsoft Outlook即可创建,操作,转换和传输电子邮件。API提供电子邮件处理功能,例如添加,提取或删除邮件对象中的附件,通过添加或删除收件人或更改主题等来自定义邮件头。
Aspose.Email for .NET更新至v20.6,实施对EWS客户端的AQS搜索的支持,支持在MHTML中获取电子邮件类别,5大功能得以增强,欢迎下载体验。
新增与改善
key | 概述 | 类别 |
---|---|---|
EMAILNET-39778 | 实施对EWS客户端的AQS搜索的支持 | 功能 |
EMAILNET-39844 | 邮件到HTML-如何保留嵌入式附件的图标和文本 | 功能 |
EMAILNET-39852 | 支持在MHTML中获取电子邮件类别 | 功能 |
EMAILNET-39835 | 在PersonalStorage中使用流输入为SaveAs添加重载 | 增强功能 |
EMAILNET-39834 | 使用PersonalStorage中的流为MergeWith添加重载 | 增强功能 |
EMAILNET-39860 | MapiCalendar没有组织者的公共属性 | 增强功能 |
EMAILNET-39858 | 没有从MBOX读取消息 | 增强功能 |
EMAILNET-39843 | 如果导出的PDF中的CC / TO字段过长,则文本换行会受到干扰 | Bug修复 |
EMAILNET-39763 | MailMessage.CheckSignature()在评估模式下引发异常 | Bug修复 |
EMAILNET-39839 | 转换msg时表格边界消失 | Bug修复 |
EMAILNET-39871 | 嵌入的图像出现在保存MSG的附件中 | Bug修复 |
EMAILNET-39853 | 在预约到MapiCalendar转换期间丢失的附件 | Bug修复 |
EMAILNET-39856 | EML内容未正确阅读 | Bug修复 |
EMAILNET-39865 | NullReferenceException关于从PST提取消息 | Bug修复 |
EMAILNET-39686 | Exchange.ListMessages不返回任何内容 | Bug修复 |
EMAILNET-39854 | MapiMessage.Properties中指定属性的PropertyDescriptor不正确 | Bug修复 |
EMAILNET-39869 | 如果在EWSClient处理期间发生错误,则解析SOAP错误消息 | Bug修复 |
EMAILNET-39855 | 将msg添加到PST时发生异常 | Bug修复 |
EMAILNET-39861 | MapiCalendar不会将与会者保存到ICS | Bug修复 |
EMAILNET-39842 | MailMessage中缺少内容分发附件标记的多部分/相关部分 | Bug修复 |
新功能解析
使用EWSClient进行高级查询搜索(AQS)搜索
高级查询语法(AQS)是Exchange使用的查询语法,可以代替搜索过滤器来表达搜索条件。AQS是一种更灵活的方式来执行搜索并提供项目上所有常用字段的搜索结果。AQS也是用户友好的,易于理解和快速掌握。使用AQS适合按附件和收件人查找邮件。
新版本中添加了以下类在Exchange中执行AQS搜索查询:
- ExchangeAdvancedSyntaxQueryBuilder——表示基于高级查询语法(AQS)的搜索表达式的构建器。
- ExchangeAdvancedSyntaxMailQuery——实现EWS使用的高级查询语法(AQS)搜索。
使用查询生成器创建搜索查询:
using (IEWSClient client = EWSClient.GetEWSClient(exchangeMailboxUri, name, password)){ ExchangeAdvancedSyntaxQueryBuilder advancedBuilder = new ExchangeAdvancedSyntaxQueryBuilder(); advancedBuilder.From.Equals("Jim Martin"); advancedBuilder.Subject.Contains("report"); advancedBuilder.HasAttachment.Equals(true); ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, advancedBuilder.GetQuery());}
使用AQS直接创建搜索查询:
using (IEWSClient client = EWSClient.GetEWSClient(exchangeMailboxUri, name, password)){ ExchangeAdvancedSyntaxMailQuery query = new ExchangeAdvancedSyntaxMailQuery("subject:(product AND report)"); ExchangeMessageInfoCollection messages = client.ListMessages(client.MailboxInfo.InboxUri, query);}
HTML转换时在邮件附件中呈现自定义图标
有时,邮件包含嵌入式附件,这些附件显示为邮件正文中的图标图像。由于图标图像丢失,因此此类消息在转换为HTML时可能会产生问题。这是因为附件的图标未直接保留在邮件中。
新版中已解决此问题,以便用户在将邮件转换为HTML时可以自定义附件的图标。为此,添加了HtmlSaveOptions.ResourceHtmlRendering事件:
private static void SetAttachmentIcon(object sender, ResourceHtmlRenderingEventArgs e){ AttachmentBase attachment = sender as AttachmentBase; e.Caption = attachment.ContentType.Name; if (attachment.ContentType.Name.EndsWith(".pdf")) { e.PathToResourceFile = "pdf_icon.png"; } else if (attachment.ContentType.Name.EndsWith(".docx")) { e.PathToResourceFile = "word_icon.jpg"; } else if (attachment.ContentType.Name.EndsWith(".jpg")) { e.PathToResourceFile = "jpeg_icon.png"; } else { e.PathToResourceFile = "not_found_icon.png"; }}
获取MHTML中的电子邮件类别
新版中引入了在将消息转换为MHML时添加类别标头的功能。
MapiMessage msg = new MapiMessage("from@aaa.com", "to@aaa.com", "subj", "body");msg.Categories = new string[] { "Urgently", "Important" };MhtSaveOptions saveOptions = new MhtSaveOptions();saveOptions.FormatTemplates[MhtTemplateName.Categories] = saveOptions.FormatTemplates[MhtTemplateName.Categories].Replace("Categories", "Les catégories");saveOptions.RenderingHeaders.Add(MhtTemplateName.Categories);msg.Save(fileName + ".mhtml", saveOptions);
还想要更多吗可以点击阅读【2020 · Aspose最新资源整合】,查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(),我们很高兴为您提供查询和咨询。
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!