如何通过EWS将所有创建的电子邮件标记为收入邮件而不是草稿?

时间:2017-10-17 08:42:17

标签: c# email exchangewebservices managed

在使用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正在以草稿形式创建电子邮件。

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

谢谢!

3 个答案:

答案 0 :(得分:3)

您需要使用扩展属性在Message上设置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);

答案 1 :(得分:0)

替换此行:

message.Save(WellKnownFolderName.Inbox);

这一行:

message.Send();

这会将电子邮件放入您的InboxSentItems文件夹中。 然后您可以通过执行以下操作从SentItems文件夹中删除它:

FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.SentItems, view);

foreach (EmailMessage item in findResults)
{
   PropertySet propertySet = new PropertySet(BasePropertySet.IdOnly);
   item.Load(propertySet);
   item.Delete(DeleteMode.HardDelete, true);
}

答案 2 :(得分:-1)

如果我告诉你你想把它送到你的十二岁吗?

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;
}