Threading des e-mails de notification Jira dans Outlook 2010

9

Lorsque je reçois des e-mails de notification Jira 4.2 dans Outlook 2010, ils ne sont pas enfilés. Bien sûr, par défaut, Jira envoie des e-mails avec les sujets comme celui-ci: [JIRA] Created: (LTST-4) improve documentation, [JIRA] Assigned: (LTST-4) improve documentation. J'ai lu en ligne qu'Outlook 2010 utilise uniquement le champ Objet pour le fil, donc avoir les sujets comme ci-dessus forcera ces e-mails à ne pas être enfilés, ce qui est en effet le cas. Notez que Gmail, par exemple, n'envoie pas non plus ces mêmes e-mails (mais l'application de messagerie Apple iPhone 4 en fait!).

Alors j'ai modifié ma configuration Jira pour supprimer la «action réalisée verbe du sujet et maintenant les sujets de tous les email se présentent comme suit: [JIRA] (LTST-4) improve documentation. Et Gmail les enfile avec bonheur. Mais Outlook 2010 ne fonctionne toujours pas!

Puis-je faire quelque chose en termes de configuration Jira ou de configuration Outlook pour forcer Outlook 2010 à enfiler les e-mails de notification Jira?

Merci, Kirill

kirillka
la source

Réponses:

5

La macro VBA suivante ne laisse qu'un seul message par problème Jira dans votre boîte de réception. Il supprime également les messages sur les problèmes résolus / fermés, car je n'ai pas besoin de les consulter

' 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
Vladimir Alexiev
la source
1

Outlook 2010 organise les conversations (discussions) par sujet uniquement. La suppression de l '«action» de l'objet de l'e-mail dans JIRA devrait les conserver ensemble dans votre boîte de réception Outlook. Il semble que vous deviez vérifier vos paramètres Outlook. Plus d'informations disponibles ici .

Justin
la source
1
Ouais, c'est ce que je pensais. Cela n'arrive pas, malheureusement. Les messages ayant le même sujet exact ne sont PAS regroupés. J'ai également vu le lien que vous mentionnez, rien de pertinent là-bas.
kirillka
0

J'ai utilisé une combinaison de l' autre message de réponse et de cet article pour écrire ma propre macro qui utilise la bibliothèque Redemption pour fusionner les conversations.

Cela scanne le dossier actuel, sélectionne tous les e-mails Jira, extrait la clé du problème du sujet. S'il n'a pas vu cette clé auparavant, il enregistre l'index de conversation dans une collection basée sur la clé de problème, et s'il l' a déjà vue, il met à jour l'e-mail avec l'index de conversation enregistré.

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

Cela nécessite les bibliothèques suivantes:

  • Bibliothèque de rachat pour un accès RDO complet, nécessaire pour définir l'index de conversation (cela ne nécessite pas d'élévation pour l'enregistrer)
  • Une référence à la Microsoft VBScript Regular Expressions 5.5bibliothèque pour extraire les clés de problème des sujets du courrier.

Oh, et vous devez également modifier vos paramètres de sécurité des macros pour l'exécuter.

Deanna
la source