我在c#中使用EWS (Exchange Web Services) Managed API访问电子邮件签名时遇到问题。到目前为止,我在Main
方法中编写了以下代码:
ServicePointManager.ServerCertificateValidationCallback = CertificateValidationCallBack;
ExchangeService service = new ExchangeService
{
Credentials = new WebCredentials(mail, password)
};
service.UseDefaultCredentials = false;
service.AutodiscoverUrl(mail, RedirectionUrlValidationCallback);
//CertificateValidationCallBack and RedirectionUrlValidationCallback
//methods are declared in other place;
//I literally took them from Microsoft site
var OWAConfig = UserConfiguration.Bind(service, "OWA.UserOptions", WellKnownFolderName.Root,
UserConfigurationProperties.All);
这段代码可以工作,但是,据我所知,OWAConfig应该包含来自OWA/Outlook 365的所有设置-但它没有。OWAConfig变量有一个名为Dictionary
的属性(应该如此),它有16个条目(例如:键为"ClientTypeOptInState"
值为2
的条目,键为"IsFocusedInboxEnabled"
值为true
的条目等)。但是据我所知,它没有我最感兴趣的东西——电子邮件签名。
如何访问OWA/Outlook 365设置中配置的电子邮件签名?我应该改变Bind
方法吗?"OWA.UserOptions"
参数正确吗?它没有签名吗?或者有,只是我找不到?请帮帮我。
随着https://office365itpros.com/2020/05/18/roaming-signatures-outlook-for-windows/新特性的引入,签名不再存储在该配置项中。目前微软还没有发布一个API来管理这些签名数据,如果你看看OWA正在做什么,比如fiddler,它称之为PATCH https://outlook.office.com/ows/beta/OutlookCloudSettings/settings,所以在它成为第三方可以使用的生产API之前可能还需要一点时间。