来自 ews 托管 API 的互联网消息 ID 发送电子邮件 c#

本文关键字:ID 电子邮件 消息 互联网 ews 托管 API 来自 | 更新日期: 2023-09-27 18:32:25

我正在尝试发现是否有办法在使用 EWS 托管 API 发送电子邮件后确定互联网消息 ID。我知道您可以进入那里并从发送框中获取结果,但是发送这些电子邮件的服务器一次从不同的服务发送多封电子邮件。

来自 ews 托管 API 的互联网消息 ID 发送电子邮件 c#

不,你不能,主要是因为 EWS 异步发送消息 ID 不可用,请参阅 https://social.msdn.microsoft.com/Forums/azure/en-US/dd034b8c-ffa1-4ae0-9025-45fcf520c9e5/updateitem-does-not-return-itemid?forum=exchangesvrdevelopment

作为解决方法,您可能需要考虑在发送邮件之前在邮件上设置 Internet 消息 ID。只要它有效且唯一,它应该可以正常工作,例如

        ExtendedPropertyDefinition PidTagInternetMessageId = new ExtendedPropertyDefinition(4149, MapiPropertyType.String);
        EmailMessage ema = new EmailMessage(service);
        ema.Subject ="test from ews";
        ema.Body = new MessageBody("test<br>Rgds<>");
        ema.ToRecipients.Add("gscales@domain.com");
        ema.SetExtendedProperty(PidTagInternetMessageId,("<" +Guid.NewGuid().ToString() + "@domain.com>"));
        ema.SendAndSaveCopy();

此外,如果在发送消息之前先将消息保存为草稿,则服务器将分配 MessageId 属性,然后该属性应该能够使用 Load 读回。

干杯幽谷