没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:胡涛|2024-09-23 11:22:39.800|阅读 89 次
概述:本文深入探讨了使用Aspose.Email for .NET访问、枚举和操作 MAPI 属性的各种技术。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
以编程方式管理电子邮件数据可能很复杂,尤其是在处理消息应用程序编程接口 (MAPI) 属性时。这些属性是与 MAPI 对象(例如消息、文件夹、收件人和消息系统中的其他组件)关联的属性或元数据。
这些属性提供有关对象的详细信息,例如电子邮件的主题、发件人的地址、电子邮件的发送日期等。MAPI 属性广泛用于电子邮件客户端和其他消息应用程序中,以管理和操作电子邮件数据。本文深入探讨了使用Aspose.Email for .NET访问、枚举和操作 MAPI 属性的各种技术。
Aspose.Email 是用于轻松的开发 email 功能的应用程序的一组控件,基于 ASP.NET 的Web应用、Web服务和Windows 应用。支持 Outlook PST, EML, MSG, and MHT 格式. 允许开发者直接与 SMTP, POP, FTP, 和 MS Exchange 服务器进行工作。支持邮件合并、行事历、定制邮件标题和内容、嵌入文件等,Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。
Aspose.Email for .NET为处理消息应用程序编程接口属性提供全面支持,允许开发人员通过详细控制管理和操作电子邮件数据。它也是一个广泛的 API,允许开发人员为其电子邮件应用程序配备强大的消息处理和其他相关任务功能。
使用 Aspose.Email for .NET,开发人员可以创建复杂的电子邮件管理和处理解决方案。要开始使用该库,您可以从 Aspose 网站或NuGet下载它并将其集成到您的项目中。
确保您的项目中已安装 Aspose.Email,然后我们就开始吧。MAPI 属性可分为三种主要类型:标准属性、命名属性和自定义(用户定义)属性。每种类别都有不同的用途,并为使用电子邮件数据的开发人员提供不同程度的灵活性和控制力。以下是每种类型的概述:
标准属性
它们由 MAPI 规范定义,具有预定义的属性标签,通常用于消息传递对象的标准属性。例如:
命名属性
这些属性由 GUID 和字符串名称或整数标识符标识,可以实现比标准属性更具体的分类和识别。
自定义(用户定义)属性
它们由开发人员定义,扩展了 MAPI 对象的功能,允许定制和特定于应用程序的数据处理。
要列出消息中的所有 MAPI 属性,我们将使用MapiMessage.Load方法来加载消息并遍历其属性。下面的代码示例演示了如何使用 Aspose.Email for .NET 加载 MAPI 消息、遍历其属性以及打印有关每个属性的详细信息:
// Load the email message from a file
var msg = MapiMessage.Load(@"D:\Aspose\Files\msg\test.msg");
// Iterate through all MAPI properties and print their details
foreach (var mapiProperty in msg.Properties.Values)
{
Console.WriteLine($"Tag: {mapiProperty.Tag}");
Console.WriteLine($"Canonical Name: {mapiProperty.Descriptor.CanonicalName}");
Console.WriteLine($"Data Type: {mapiProperty.Descriptor.DataType}");
}
常规 MAPI 属性由包含属性类型和属性标识符的 16 位属性标记标识,而命名属性则由 GUID 和字符串名称或整数标识符的组合标识:
以下代码片段演示了如何使用 Aspose.Email for .NET 遍历消息的命名 MAPI 属性并根据属性描述符类型打印出详细信息:
foreach (MapiNamedProperty mapiNamedProperty in msg.NamedProperties.Values)
{
if (mapiNamedProperty.Descriptor is PidNamePropertyDescriptor pidNamePropertyDescriptor)
{
Console.WriteLine($"GUID: {pidNamePropertyDescriptor.PropertySet}");
Console.WriteLine($"Canonical Name: {pidNamePropertyDescriptor.CanonicalName}");
Console.WriteLine($"Data Type: {pidNamePropertyDescriptor.DataType}");
}
if (mapiNamedProperty.Descriptor is PidLidPropertyDescriptor pidLidPropertyDescriptor)
{
Console.WriteLine($"GUID: {pidLidPropertyDescriptor.PropertySet}");
Console.WriteLine($"Canonical Name: {pidLidPropertyDescriptor.CanonicalName}");
Console.WriteLine($"Long ID: {pidLidPropertyDescriptor.LongId}");
Console.WriteLine($"Data Type: {pidLidPropertyDescriptor.DataType}");
}
}
因此,我们根据描述符类型(或)打印了特定的属性PropertySet,如CanonicalName、、DataType和。LongIdPidNamePropertyDescriptorPidLidPropertyDescriptor
通过描述符检索属性是一种访问特定 MAPI 属性的直接方法,无需遍历整个属性集合。Aspose.Email for .NET 提供了一种使用 KnownPropertyList 检索属性的便捷方法。下面的代码示例演示了如何检索和打印特定属性(如 InternetMessageId,如果存在)的详细信息。
// Retrieve and print the InternetMessageId property if it exists
if (msg.Properties[KnownPropertyList.InternetMessageId] != null)
{
var property = msg.Properties[KnownPropertyList.InternetMessageId];
Console.WriteLine($"Tag: {property.Tag}");
Console.WriteLine($"Canonical Name: {property.Descriptor.CanonicalName}");
Console.WriteLine($"Data Type: {property.Descriptor.DataType}");
// Retrieve and print the property value if it is a string
if (property.Descriptor.DataType == PropertyDataType.String)
{
var propertyValue = property.GetString();
Console.WriteLine($"Value: {propertyValue}");
}
}
属性标记是唯一标识 MAPI 属性的 32 位标识符。它由属性 ID 和属性类型组成。使用属性标记,您可以直接访问 MAPI 消息中的特定属性。下面的代码示例演示了如何检索和打印特定属性(如 PR_HASATTACH,如果存在)的详细信息。
// Retrieve and print the PR_HASATTACH property if it exists
if (msg.Properties[MapiPropertyTag.PR_HASATTACH] != null)
{
var property = msg.Properties[MapiPropertyTag.PR_HASATTACH];
Console.WriteLine($"Tag: {property.Tag}");
Console.WriteLine($"Data Type: {property.DataType}");
// Retrieve and print the property value if it is a boolean
if (property.DataType == (int)MapiPropertyType.PT_BOOLEAN)
{
var propertyValue = property.GetBoolean();
Console.WriteLine($"Has Attachments: {propertyValue}");
}
}
GetProperty方法简化了从 MAPI 消息中检索常规属性和命名属性的过程。此方法允许您通过其描述符或标记直接访问属性,而无需手动检查属性集合。以下代码示例演示了如何利用 GetProperty 方法访问特定的 MAPI 属性:
// Retrieve and print the CurrentVersionName property
var namedProperty = msg.GetProperty(KnownPropertyList.CurrentVersionName);
if (namedProperty != null)
{
Console.WriteLine($"Current Version Name: {namedProperty.GetString()}");
}
这里,GetProperty用于CurrentVersionName直接访问属性。
自定义 MAPI 属性是附加属性,不属于预定义的 MAPI 属性集。它们用于保存特定于应用程序的数据,由开发人员定义。通过允许开发人员定义和使用附加属性,MAPI 提供了一种灵活而强大的方法来存储和管理消息应用程序中的自定义数据。自定义属性是命名属性(使用 GUID 和字符串名称)。Aspose.Email 引入了一种方法,您可以使用它来获取消息中定义的所有自定义属性。这是通过GetCustomProperties方法实现的。下面的代码示例演示了如何获取和打印 MAPI 消息中定义的所有自定义属性:
// Retrieve and print custom properties
var customProperties = msg.GetCustomProperties();
foreach (var customProperty in customProperties)
{
Console.WriteLine($"Tag: {customProperty.Tag}");
Console.WriteLine($"Canonical Name: {customProperty.Descriptor.CanonicalName}");
Console.WriteLine($"Data Type: {customProperty.Descriptor.DataType}");
}
本文探讨了使用Aspose.Email for .NET访问、枚举和操作 MAPI 属性的各种技术。Aspose.Email 为处理这些属性提供了全面的支持,允许开发人员通过精细控制来管理和操作电子邮件数据。通过使用此库,开发人员可以创建复杂的电子邮件管理和处理解决方案,从而更轻松地使用标准、命名和自定义属性。
欢迎下载|体验更多Aspose文档管理产品
获取更多信息请咨询慧都在线客服 或 加入Aspose技术交流群(666790229)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com




近日,Stimulsoft 正式发布了2025.3 版本的报表工具,为 .NET 和 .NET Framework 平台带来了重要更新 —— 支持在报表计算过程中以解释模式运行 C# 脚本。这一功能将进一步提升报表的灵活性和扩展性,方便开发者在报表设计与运行中实现更多自定义逻辑。
在 Python 开发中处理 Microsoft Excel 文件,选择一个功能完善、易于使用的 Excel 库都能显著提升效率。Aspose.Cells for Python 兼顾了性能、灵活性与功能丰富度,能够满足不同业务场景下的表格处理需求。它不仅仅是一个读取 Excel 文件的工具,更是一套完整的电子表格处理引擎,已在金融、数据分析、自动化、报表生成等领域广泛应用。
传统的建模工具通常依赖于基于文件的存储方式,这种方式在处理小型项目时可能足够,但在面对大型团队和复杂模型时,往往会暴露出诸多问题,如文件版本冲突、数据一致性难以保证、扩展性受限等。企业级建模工具Sparx EA的DBMS存储库为企业提供了一种基于服务器的存储解决方案,通过将模型数据存储在企业级数据库管理系统(如Oracle和SQL Server)中,有效解决了这些问题。
TestComplete与BitBar的整合方案,成功破解了跨平台自动化测试的核心痛点。通过高效覆盖多技术栈、利用云端真机实现大规模并行测试、无缝融入CI/CD流程,团队得以将测试效率提升,显著加快反馈闭环,最终确保应用在多样化终端上的一致性与可靠性,驱动业务高效发展。
相关产品
专业的电子表格控件,无需MS Excel也可满足一切Excel表格功能。
Aspose.SlidesAspose.Slides是第一个能在用户的应用程序中对PowerPoint文档进行管理的组件。
最新文章 MORE
相关文章 MORE
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 
渝公网安备
50010702500608号
首页