Используя API Office.js, мы можем легко сохранить дополнительную информацию в объект CustomProperties
через customProps.set
. Информация специфична для почтового отправления.
Это документ Сохранить в пользовательских свойствах с помощью office.js
Можно ли добиться того же с помощью EWS
API?
Я пытался Создание пользовательских расширенных свойств с помощью EWS Managed API 2.0 Но какую бы информацию не сохранить с помощью этого метода, я не могу получить ее с помощью customProps.get
.
из Office.js.
Случай пользователя заключается в том, что моя надстройка сохранит тело письма и его вложения в двоичном виде во внешнем приложении. По окончании клиентская сторона будет использовать customProps.set
Office.js для сохранения информации об успешном выполнении на сервере, и если вы в следующий раз нажмете на тот же адрес электронной почты, приложение будет использовать customProps.get
, чтобы показать, что электронное письмо было сохранено. Но если во время длительного процесса сохранения (может быть, сохранить большое вложение, пользователь закроет панель задач перед выполнением customProps.set
, customProps.set
просто не сработает, поскольку среда браузера (панель задач) закрыта. Поэтому я необходимо реализовать это с помощью API EWS.
Мой код C #:
Guid PS_PUBLIC_STRINGS = new Guid("a8e14732-37cf-4a46-b69f-1111111111");//add-in manifest id
ExtendedPropertyDefinition extendedPropertyDefinition =
new ExtendedPropertyDefinition(PS_PUBLIC_STRINGS, "Expiration Date", MapiPropertyType.String);
Email.SetExtendedProperty(extendedPropertyDefinition, DateTime.Now.AddDays(2).ToString());
Email.Update(ConflictResolutionMode.AlwaysOverwrite);//'The requested web method is unavailable to this caller or application.'
JS код:
Office.context.mailbox.item.loadCustomPropertiesAsync(function (asyncResult) {
var customProps = asyncResult.value;
console.log(customProps);
console.log(customProps.get('Expiration Date')); //undefined
})