Um eine Mail im Outlook zu signieren war es bisher üblich über die Funktion
CommandBars.FindControl(,719).Execute
den "signieren" Button des MailItem-Ribbons zu betätigen. Auch in der Vergangenheit war es schwierig da man u.U. die Execute Methode 3x aufzurufen (sic!). Nachdem dies ab Office 2013 nicht mehr funktioniert, generell wird die Commandbars Methode nicht mehr unterstützt, musste ich eine Alternative finden. Wie immer in diesem Blog findet man das nicht durch en bisschen Googeln, deshalb hier die Lösung: Die Property PR_SECURITY_FLAGS des aktuellen Mailitems setzen:
''' <summary>
''' E-Mail Item signieren (Zertifikat)
''' </summary>
''' <param name="blnSignieren"></param>
''' <remarks></remarks>
Public Shared Sub Nachricht_signieren(blnSignieren As Boolean)
Try
Const PR_SECURITY_FLAGS = "http://schemas.microsoft.com/mapi/proptag/0x6E010003"
Const SECFLAG_NONE = &H0
Const SECFLAG_SIGNED = &H2
'Const SECFLAG_ENCRYPTED = &H1
'Aktuelles Mailitem holen
Dim actOutItem As Outlook.MailItem
actOutItem = CType(oOut.ActiveInspector.CurrentItem, Outlook.MailItem)
'Sign / Unsign
If Funktionen.isEmailItem(actOutItem) Then
Dim prop As Long
prop = CLng(actOutItem.PropertyAccessor.GetProperty(PR_SECURITY_FLAGS))
actOutItem.PropertyAccessor.SetProperty(PR_SECURITY_FLAGS, If(blnSignieren = True, SECFLAG_SIGNED, SECFLAG_NONE))
End If
actOutItem = Nothing
Catch ex As Exception
Throw ex
End Try
End Sub
eine Auflistung der Properties findet Ihr auf der Webseite https://searchcode.com/codesearch/view/3372596/ bzw. da ich dem Internet nicht traue, ebenfalls als Textdatei im Anhang. Danke. Bitte :-)