#c# #outlook #vsto #outlook-addin
#c# #outlook #vsto #outlook-добавление
Вопрос:
Возникла проблема с изменением почтового элемента в обработчике событий ItemSend до фактической отправки этого почтового элемента. Почтовый элемент, измененный с помощью DeferredDeliveryTime, будет находиться в папке Исходящие и никогда не будет отправлен. Тот же результат, если вызывается MailItem.Save() или нет. Теперь я предполагаю, что успешное изменение почтового элемента в этом обработчике событий требует определенных шагов или подхода. Любые рекомендации будут оценены.
private void ItemSendEventHandler(object Item, ref bool Cancel)
{
if (Item is MailItem)
{
try
{
MailItem mailItem = Item as MailItem;
if (someCondition == true)
{
// Defer by 60 seconds (will be rounded to the nearest minute)
mailItem.DeferredDeliveryTime = DateTime.Now.AddSeconds(60);
mailItem.Save();
}
}
catch (System.Exception ex)
{
LogFile.LogException(ex);
}
}
}
Комментарии:
1. Затем вы просматриваете папку исходящих? Имейте в виду, что прикосновение к элементу, отправляемому с помощью OOM или Outlook UI, прерывает процесс отправки
2. Да, просматриваю папку исходящих после установки точки останова в ItemSend, чтобы убедиться, что код выполняется без ошибок. Я подозреваю, что прикосновение к элементу на этом этапе (ItemSend), вероятно, прерывает отправку. Есть предложения о том, как обойти это?
3. ItemsSend вызывается до фактической отправки сообщения (отсюда и параметр Cancel). Включена ли у вас панель чтения в папке Исходящие?
4. Панель чтения для папки исходящих отключена.
5. Выделено ли сообщение курсивом в папке исходящих?