В момента моят код проверява имейла (на събитието Item_Send), за да види дали има прикачен файл и след това дава условен формуляр за шифроване и изпращане, изпращане нешифровано или отмяна на изпращане. Той също така търси SSN в тялото, като дава на потребителя същия изскачащ формуляр. Всичко работи, както е рекламирано, освен ако потребителят има отворени два имейл прозореца/екземпляра едновременно. Например, ако имейл №1 има прикачен файл, а имейл №2 е на заден план, ако се опитам да изпратя имейл №1 и избера Отказ от изпращането, той се връща към имейл №1 без изпращане (както се рекламира), обаче, когато се върнете към имейл №2 и се опитате да изпратите (което няма нищо общо с имейл №1), той също няма да изпрати. Ще покажа кода по-долу, но използвам командата „Cancel=True“, за да спра имейла, но това спира операцията за изпращане и инспекторът остава отворен, като по този начин не ми позволява да изпращам имейли, които може да са били отворени в този момент време. Има ли някакви идеи около това? Как мога да накарам това събитие Item_Send да обработва само ТЕКУЩИЯ екземпляр на Outlook.MailItem, а не друг, който може да е отворен по същото време. Благодаря! Изпуснах много от кода, това е само част от проблема, който имам. SSNBtnPress=3 за Cancel=True
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
Край на класа