Enhebrar correos electrónicos de notificación de Jira en Outlook 2010


9

Cuando recibo correos electrónicos de notificación de Jira 4.2 en Outlook 2010, no se enhebran. Por supuesto, por defecto, Jira envía correos electrónicos con los temas de esta manera: [JIRA] Created: (LTST-4) improve documentation, [JIRA] Assigned: (LTST-4) improve documentation. Leí en línea que Outlook 2010 solo usa el campo Asunto para enhebrar, por lo que tener los asuntos como se indica arriba obligará a esos correos electrónicos a NO ser enhebrados, lo cual es el caso. Tenga en cuenta que Gmail, por ejemplo, tampoco envía esos mismos correos electrónicos (¡pero la aplicación de correo Apple iPhone 4 sí lo hace!).

Así pellizqué mi configuración Jira para eliminar la 'acción realizada' verbo del sujeto y ahora los asuntos de correo electrónico todo el siguiente aspecto: [JIRA] (LTST-4) improve documentation. Y Gmail los enhebra felizmente. ¡Pero Outlook 2010 todavía no lo hace!

¿Hay algo que pueda hacer en términos de configuración de Jira o configuración de Outlook para forzar a Outlook 2010 a enhebrar correos electrónicos de notificación de Jira?

Gracias Kirill

Respuestas:


5

La siguiente macro de VBA deja solo 1 mensaje por problema de Jira en su Bandeja de entrada. También elimina mensajes sobre problemas resueltos / cerrados, ya que no necesito mirarlos

' Tools>References: Microsoft VBScript Regular Expressions 5.5, Microsoft Scripting Runtime

Sub RemoveDuplicateJiraKeys()
    Dim i As Object
    Dim re As New RegExp
    Dim m As MatchCollection
    Dim d As New Dictionary
    Dim act As String ' Commented, Resolved, Updated...
    Dim key As String ' e.g. RS-123

    re.Pattern = "\[JIRA\] (.*?): \((.*?)\)"
    For Each i In Session.GetDefaultFolder(olFolderInbox).Items
      ' luckily the items come in chronological order
      Set m = re.Execute(i.Subject)
      If m.Count >= 1 Then
        act = m(0).SubMatches(0)
        key = m(0).SubMatches(1)
        If d.Exists(key) Then d(key).Delete: d.Remove (key) ' same Jira key but older
        If act = "Resolved" Or act = "Closed" Then i.Delete Else d.Add key, i
      End If
    Next i
End Sub

1

Outlook 2010 organiza las conversaciones (subprocesos) solo por tema. Eliminar la 'acción' del asunto del correo electrónico en JIRA debería mantenerlos juntos en su bandeja de entrada de Outlook. Parece que es posible que deba verificar la configuración de Outlook. Más información disponible aquí .


1
Sí, eso es lo que yo pensaba. No sucede, desafortunadamente. Los mensajes con el mismo tema exacto NO se unen. También he visto el enlace que mencionas, nada relevante allí.
Kirillka

0

Utilicé una combinación de la otra publicación de respuestas y este artículo para escribir mi propia macro que usa la biblioteca Redemption para fusionar las conversaciones.

Esto escanea la carpeta actual, selecciona los correos electrónicos de jira, extrae la clave del problema del asunto. Si no se ha visto esa clave antes, guarda el índice de conversación en una colección basada en la clave de problema, y ​​si la ha visto antes, actualiza el correo electrónico con el índice de conversación guardado.

Dim ConversationIndexes As New Collection

Sub GroupJira()
    Dim MapiNamespace As Object
    Dim RdoSession As Object

    Dim Item As Object
    Dim RdoItem As Object

    Dim ConversationKey As String
    Dim ConversationIndex As String

    ' Get all the required handles
    Set MapiNamespace = Outlook.GetNamespace("MAPI")
    MapiNamespace.Logon
    Set RdoSession = CreateObject("Redemption.RDOSession")
    RdoSession.MAPIOBJECT = MapiNamespace.MAPIOBJECT

    'Setup some subject patterns to extract the issue key
    Dim Matches As MatchCollection
    Dim UpdateSubjectPattern As New RegExp
    UpdateSubjectPattern.Pattern = "\[JIRA\] \(([A-Z]+-[0-9]+)\) .*"
    Dim MentionedSubjectPattern As New RegExp
    MentionedSubjectPattern.Pattern = "\[JIRA\] .* mentioned you on ([A-Z]+-[0-9]+) \(JIRA\)"

    For Each Item In Outlook.ActiveExplorer.CurrentFolder.Items
        If TypeOf Item Is MailItem Then
            If Left(Item.Subject, 7) = "[JIRA] " Then
                ' Get a key for this conversation, opic for now
                ConversationKey = Item.ConversationTopic
            Set Matches = UpdateSubjectPattern.Execute(Item.Subject)
            If Matches.Count >= 1 Then ConversationKey = Matches(0).SubMatches(0)
            Set Matches = MentionedSubjectPattern.Execute(Item.Subject)
            If Matches.Count >= 1 Then ConversationKey = Matches(0).SubMatches(0)

                ' Get any saved indexes
                ConversationIndex = ""
                On Error Resume Next
                ConversationIndex = ConversationIndexes.Item(ConversationKey)
                On Error GoTo 0

                If ConversationIndex = "" Then
                    ' Save this index if not seen yet
                    ConversationIndexes.Add Item.ConversationIndex, ConversationKey
                ElseIf Item.ConversationIndex <> ConversationIndex Then
                    ' Set the item's index if it has
                    Set RdoItem = RdoSession.GetMessageFromID(Item.EntryID, Item.Parent.StoreID)
                    RdoItem.ConversationIndex = ConversationIndex
                    RdoItem.Save
                End If
            End If
        End If
    Next Item
End Sub

Esto requiere las siguientes bibliotecas:

  • Biblioteca de canje para acceso RDO completo, necesaria para establecer el índice de conversación (esto no requiere elevación para registrarlo)
  • Una referencia a la Microsoft VBScript Regular Expressions 5.5biblioteca para extraer claves de problema de los asuntos del correo.

Ah, y también debes modificar la configuración de seguridad de tu macro para ejecutarla.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.