Я пишу некоторый код на 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
. Я пытался найти, но ничего не смог найти.
Я могу обойтись, показав второе электронное письмо и оставив его пользователю для отправки или отмены, но, если возможно, я бы предпочел, чтобы код позаботился об этом.