Member 9224291 Ответов: 1

Как переместить динамически созданный mailitem в другую папку в outlook


У меня есть требование создать динамическую электронную почту и отправить ее соответствующему Пользователю. После отправки этого письма необходимо переместить отправленное письмо в какую-то пользовательскую папку. При перемещении выдает ошибку "System.Runtime.InteropServices.COMException: "элемент был перемещен или удален"."

Что я уже пробовал:

var inbox = outlookFormRegion.Application.ActiveExplorer().Session.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
MAPIFolder moveToFolder = inbox.Folders["Custom Tickets"];

var app = new Microsoft.Office.Interop.Outlook.Application();
MailItem forwardMailItem = app.CreateItem(OlItemType.olMailItem);
forwardMailItem.Subject = "Ticket: 11254875";
forwardMailItem.Body = "Testing";
forwardMailItem.Send();
forwardMailItem.Move(moveToFolder);

Richard Deeming

Зачем вы создаете новый экземпляр приложения? Я подозреваю, что вы должны заменить:

var app = new Microsoft.Office.Interop.Outlook.Application();

с:
var app = outlookFormRegion.Application;

1 Ответов

Рейтинг:
2

Maciej Los

Я бы предложил создать правило для перемещения отправленного элемента в определенную папку: Автоматическое перемещение отправленных писем в определенную папку[^]

Другое решение-поиск определенного элемента в папке MAPI (Send Items), а затем его перемещение.
Сообщения.Метод перемещения (Outlook) | Microsoft Docs[^]


Member 9224291

Спасибо за Ваш быстрый ответ. Но проблема в том, что письма перемещаются в папки на основе некоторых условий, и это должно быть обработано в C#, так как есть много пользователей, которые собираются его использовать.

Maciej Los

Итак, вам нужно разработать вторую часть решения...