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

4
我目前已经编写了C#代码,使用SMTPClient和MailMessage对象发送电子邮件。
我的新要求是,所发送的电子邮件应该具有“权限”,就好像用户通过Outlook发送电子邮件并使用来自功能区的选项一样。需要设置的权限是“不转发”选项。
我希望在发送电子邮件时模拟的选项在此处访问;
https://istack.dev59.com/EjJvy.webp 请问是否可以提供一些示例.NET代码来实现这一点,或者提供一个好的在线代码参考?
预先感谢您, Brian.

我不是C#专家,但你能发一下创建消息的代码吗? - JimmyPena
2个回答

5
首先,我不知道如何仅使用标准SMTP消息(MailMessage)设置IRM(信息权限管理)权限。我认为,IRM权限完全是基于Outlook/Exchange的,并且在SMTP标准中缺乏任何形式的表示。
您唯一能够启用该权限的方法是通过Outlook对象模型,使用Outlook互操作程序集。上面的IamStalker建议Redemption,虽然99%与Outlook相关的问题都可以采用这种解决方案,但对于这个特定的问题不适用。因为IRM(据我所知)在MAPI中没有任何表示,所以Redemption在这里帮助不大;我不认为在Redemption的对象模型中看到过任何与IRM相关的属性。
您最有可能感兴趣的是由MailItem对象类型公开的Permission属性。看起来,为了以编程方式打开“不转发”选项,您需要将该属性的值设置为OlPermission.olDoNotForward
还有另一个与IRM相关的属性(PermissionTemplateGuid),但是由于您使用内置的“权限”,因此可以将其保留为空字符串。
那么,我会认为所有其他与IRM相关的设置都通过用户的Outlook配置文件提供给Outlook。
祝你好运!

感谢您的反馈。我会像建议的那样查看Outlook OM。 - Brian Scott

1

你好 Brian,我只有一个建议 "Redemption"!我已经使用过它了,它非常棒,非常容易实现,所有者 Dima 人非常好,他提供了很多帮助。

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


我看不到这个库如何满足我的要求的任何参考资料。你能提供更多信息吗? - Brian Scott
我认为你应该与主要开发人员一起检查它 http://www.dimastr.com/redemption/mapitable.htm - hackp0int

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接