如何在C#中的电子邮件上设置Outlook扩展属性?

时间:2011-12-16 11:04:06

标签: email permissions outlook smtp extended-properties

我目前编写的代码是使用常用的SMTPClient和MailMessage对象在C#中发送电子邮件。

我的新要求是发送的电子邮件应设置“权限”,就像用户通过Outloook发送电子邮件并使用功能区工具栏中的选项一样。要设置的权限是“请勿转发”选项。

我希望在发送电子邮件时模拟选项;

"Do Not Forward" Option

任何人都可以提供一些示例.Net代码来实现这一点,或者在线提供一个很好的代码参考吗?

提前致谢, 布赖恩。

2 个答案:

答案 0 :(得分:5)

首先,我不知道如何仅使用标准SMTP邮件( MailMessage )设置IRM(信息权限管理)权限。我认为,IRM权限完全以Outlook / Exchange为中心,并且在SMTP标准中缺少任何形式的表示。

您可以通过Outlook Interop程序集通过Outlook对象模型启用该权限的唯一方法。 IamStalker 在我之上推荐了Redemption,虽然99%的时间是与Outlook相关的所有内容的正确答案,但这不是解决这个特定问题的方法。因为IRM(据我所知)在MAPI中没有任何代表,所以Redemption在这里没有多大帮助;我不相信我曾经在Redemption的对象模型上看到过与IRM相关的属性。

您很可能对 MailItem 对象类型公开的Permission属性感兴趣。看来,为了以编程方式启用“不转发”选项,您需要将该属性的值设置为OlPermission.olDoNotForward

还有另一个与IRM相关的属性( PermissionTemplateGuid ),但由于您使用的是内置“权限”,因此您可以将其保留为空字符串。

我认为所有其他与IRM相关的设置都是通过用户的Outlook配置文件提供给Outlook的。

祝你好运!

答案 1 :(得分:1)

Hello Brian我只有一个建议“Redemption”! 我已经习惯了它很棒很容易实现所有者Dima是一个非常好的人 他帮助很多。

PS:它不是免费的,但值得每一分钱。