Проверьте, действительно ли электронная почта Outlook отправлена ​​с VB.net - PullRequest
0 голосов
/ 08 января 2019

Я пишу некоторый код на VB.net, который заархивирует некоторые файлы с паролем и отправит их по электронной почте получателю (ям), а затем отправит второе письмо получателю (ям) с паролем для zip-файла. Письмо отправляется через Outlook.

Люди, которые будут использовать это, также имеют некоторый код VBA в процедуре события Application_ItemSend в Outlook, которая проверяет, отправляются ли вложения на внешние адреса электронной почты, и, если да, то дает пользователю подробности и возможность Отменить отправку электронного письма. - это делается с помощью свойства / аргумента Отмена (извините, я не в порядке с правильной терминологией для вещей в VBA / VB.net) процедуры события Application_ItemSend.

Если пользователь отменяет первое электронное письмо, я бы хотел, чтобы второе электронное письмо не отправлялось. Я попытался проверить (непосредственно после вызова MailItem.Send()) MailItem.Sent.ToString, но он выдает ошибку в этой строке и дает это исключение - System.Runtime.InteropServices.COMException: 'The item has been moved or deleted.

Моя первая мысль состояла в том, что как только MailItem.Send() был вызван, MailItem стал ничем, но я только что положил часы для MailItem Is Nothing, и он возвращает False. Я пытался найти, но ничего не смог найти.

Я могу обойтись, показав второе электронное письмо и оставив его пользователю для отправки или отмены, но, если возможно, я бы предпочел, чтобы код позаботился об этом.

1 Ответ

0 голосов
/ 10 января 2019

Вместо немедленной отправки второго электронного письма дождитесь, пока в папке «Отправленные» не сработает событие Items.ItemAdd. Как только первое сообщение вызывает это событие, вы можете создать и отправить второе электронное письмо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...