【问题标题】:Exchange Web Services save mail as draft sets DateTimeSentExchange Web 服务将邮件保存为草稿集 DateTimeSent
【发布时间】:2021-02-16 03:01:49
【问题描述】:

我的 C# 程序正在 Exchange 2010 SP2 上通过 Exchange Web 服务 (EWS 2.2.0) 创建一个 EmailMessage 项。当我调用 Save 方法时,它会显示在 Outlook 草稿文件夹中,但 DateTimeSent 设置为当前时间。

这对我来说似乎不正确,因为当我使用 Outlook 创建电子邮件并将其另存为草稿时,该属性为空。 该属性也是只读的,因此我无法将其设置为 null。

我尝试使用 SetExtendedProperty 设置它,但没有成功。

任何想法如何防止这种情况?我的用户抱怨“发送日期”出现在尚未发送的打印电子邮件草稿中(是的,我知道...)。

干杯

【问题讨论】:

    标签: c# exchangewebservices


    【解决方案1】:

    我找到了适合我的情况的解决方法。 如果我将扩展属性 PR_CLIENT_SUBMIT_TIME 设置为 5000 年 1 月 1 日,它既不会显示在 Outlook 中,也不会显示在打印输出中:

    var msg=new EmailMessage();
    const int PR_CLIENT_SUBMIT_TIME = 0x0039;
    DateTime weirdDateThatSomeHowIsIgnoredByExchange = new DateTime(5000, 1, 1);
    msg.SetExtendedProperty(
        new ExtendedPropertyDefinition(PR_CLIENT_SUBMIT_TIME, MapiPropertyType.SystemTime),
        weirdDateThatSomeHowIsIgnoredByExchange.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ"));
    msg.Save(folder.Id);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-14
      • 2022-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多