В настоящее время мой код проверяет электронную почту (в событии Item_Send), чтобы узнать, есть ли в ней вложение, а затем дает условную форму для шифрования и отправки, отправки незашифрованного или отмены отправки. Он также ищет SSN в теле, предоставляя пользователю то же самое всплывающее окно формы. Все работает так, как рекламируется, если у пользователя одновременно не открыты два окна/экземпляра электронной почты. Например, если электронное письмо № 1 имеет вложение, а электронное письмо № 2 находится в фоновом режиме, если я попытаюсь отправить электронное письмо № 1 и выберу «Отменить отправку», оно вернется к электронному письму № 1 без отправки (как рекламируется), однако, когда вы вернетесь к электронной почте № 2 и попытаетесь отправить (это не имеет ничего общего с электронной почтой № 1), она также не будет отправлена. Я покажу код ниже, но я использую команду «Отмена = True», чтобы остановить электронное письмо, но это останавливает операцию отправки, и инспектор остается открытым, что не позволяет мне отправлять электронные письма, которые могли быть открыты в это время. время. Есть идеи по этому поводу? Как я могу заставить это событие Item_Send обрабатывать только ТЕКУЩИЙ экземпляр Outlook.MailItem, а не другой, который может быть открыт в то же время. Спасибо! Я многое упустил из кода, это лишь часть проблемы, с которой я столкнулся. SSNBtnPress=3 для отмены=Истина
Public Sub Application_ItemSend(ByVal Item As Object, _
ByRef Cancel As Boolean) Handles Application.ItemSend
Dim mailItem As Outlook.MailItem = TryCast(Item, Outlook.MailItem)
If mailItem IsNot Nothing Then
frm1.ShowDialog()
If (SSNbtnPress = 1) Then
mailItem.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/x-PII", "Encryptclicked")
If RegexObj1.IsMatch(mailItem.Body) Then
mailItem.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x6E010003", 3)
Cancel = False
ElseIf RegexObj1.IsMatch(mailItem.Subject) Then
mailItem.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x6E010003", 3)
Cancel = False
Else
mailItem.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x6E010003", 3)
Dim addToBody As String = "Test" + vbNewLine + vbNewLine + mailItem.Body
Dim addtoSubject As String = "Test " + mailItem.Subject
mailItem.Subject = addtoSubject
mailItem.Body = addToBody
Cancel = False
End If
End If
End If
If (SSNbtnPress = 2) Then
mailItem.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/string/{00020386-0000-0000-C000-000000000046}/x-PII", "SUclicked")
mailItem.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x6E010003", 2)
Cancel = False
Exit Sub
ElseIf (SSNbtnPress = 3) Then
mailItem.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x6E010003", 2)
Cancel = True
Exit Sub
End If
End Sub
Конец класса