【问题标题】:How can I mark all created emails through EWS as income mails and not drafts?如何将所有通过 EWS 创建的电子邮件标记为收入邮件而不是草稿?
【发布时间】:2017-10-17 08:42:17
【问题描述】:

只是有一个关于这个问题的问题,我在使用 EWS 和创建邮件时遇到了这个问题。

我正在创建电子邮件并将其保存到我的收件箱。

            EmailMessage message = new EmailMessage(_exchangeService);
            message.From = emailObject.SenderAddress;
            message.Subject = emailObject.Subject;
            message.Body = emailObject.Body
            message.ToRecipients.Add(email);
            message.CcRecipients.Add(emailObject.CC);
            message.IsRead = false;
            message.Save(WellKnownFolderName.Inbox);

现在的问题是,EWS 正在将电子邮件创建为草稿。

是否可以将邮件标记为收入邮件?

谢谢!

【问题讨论】:

  • 这在 IMO 是不可能的。 IsDraft 消息属性是只读的,由服务器管理。根据文档“一个项目是尚未发送的草稿。”。对我来说唯一的解决方案是发送消息并将其从 sent 文件夹中删除
  • 好的,还是谢谢你。我想,我不接受这个解决方案。

标签: c# email exchangewebservices managed


【解决方案1】:

您需要使用扩展属性在消息上设置 PR_Message_Flags https://msdn.microsoft.com/en-us/library/ee160304(v=exchg.80).aspx 属性,这将使消息显示为已发送

ExtendedPropertyDefinition PR_MESSAGE_FLAGS = new ExtendedPropertyDefinition(3591, MapiPropertyType.Integer);
message.SetExtendedProperty(PR_MESSAGE_FLAGS, 1);

【讨论】:

    【解决方案2】:

    如果我猜对了,你想把它发给你自己吗?

    System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
    message.To.Add("recipient@bar.com");
    message.Subject = "Important";
    message.From = new System.Net.Mail.MailAddress("sender@bar.com");
    message.Body = "Message";
    
    System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("your.exchange.instance.url");
    try
    {
        smtp.Send(message);
    }
    catch (SmtpFailedRecipientException ex)
    {
        throw ex;
    }
    

    【讨论】:

    • 这个答案不相关。 OP 使用的是 EWS,而不是 SMTP。
    • 不相关。我正在使用 EWS。
    猜你喜欢
    • 2015-09-17
    • 2023-03-21
    • 2019-06-29
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 2011-06-15
    相关资源
    最近更新 更多