如何使用 EWS Managed API 2.0 创建笔记

How to create notes using EWS Managed API 2.0

即使查看 MSDN's Exchange 2013 - 101 Code Samples, I could not find an example creating notes using EWS Managed API 2.0. On Folders and items in EWS in Exchange,在我看来最合适的项目类型 PostItem 但我的测试未能尝试在 Notes 文件夹中创建此类项目。或者,有没有可能在这个库中没有API用于创建笔记?

看看 PostItem,他们应该做你想做的。 PostItem

样本

var items = new List<PostItem>();

for (int i = 0; i != 10; ++i)
{
    var m = new PostItem(service);
    m.Subject = "Note " + i.ToString();
    m.Body = new MessageBody(BodyType.Text, "A test note");
    m.Save();
}

PostItem 与 Notes 文件夹中的注释不同。 PostItem 表示消息 class 为 IPM.Post 的项目。另一方面,注释使用消息 class IPM.StickyNote。托管 API 不直接支持这些项目。您可以将它们检索为 EmailMessage 个对象,如果您手动设置所需的属性,您甚至可以将它们创建为 EmailMessage 个对象。 Glen 在他的博客上写了一篇很好的文章:http://gsexdev.blogspot.com/2009/07/creating-sticky-notes-in-ews-managed.html

var guid = new Guid("0006200E-0000-0000-C000-000000000046");
var colour = new ExtendedPropertyDefinition(guid, 0x8B00, MapiPropertyType.Integer);
var width = new ExtendedPropertyDefinition(guid, 0x8B02, MapiPropertyType.Integer);
var height = new ExtendedPropertyDefinition(guid, 0x8B03, MapiPropertyType.Integer);
var left = new ExtendedPropertyDefinition(guid, 0x8B04, MapiPropertyType.Integer);
var top = new ExtendedPropertyDefinition(guid, 0x8B05, MapiPropertyType.Integer);

var items = new List<EmailMessage>();
for (int i = 0; i != maxItems; ++i)
{
    var m = new EmailMessage(service);
    m.Subject = "Note " + i.ToString();
    m.ItemClass = "IPM.StickyNote";
    m.Body = new MessageBody(BodyType.Text, "A test note");
    m.SetExtendedProperty(colour, 1);
    m.SetExtendedProperty(width, 200);
    m.SetExtendedProperty(height, 166);
    m.SetExtendedProperty(left, 200);
    m.SetExtendedProperty(top, 200);
    items.Add(m);
}

var folder = Folder.Bind(service, WellKnownFolderName.Notes, new PropertySet());
var responses = service.CreateItems(items, folder.Id, MessageDisposition.SaveOnly, SendInvitationsMode.SendToNone);