Threading von Jira-Benachrichtigungs-E-Mails in Outlook 2010

9

Wenn ich in Outlook 2010 Jira 4.2-Benachrichtigungs-E-Mails erhalte, werden diese nicht mit Threads versehen. Natürlich sendet Jira standardmäßig E-Mails mit folgenden Betreffzeilen: [JIRA] Created: (LTST-4) improve documentation, [JIRA] Assigned: (LTST-4) improve documentation. Ich habe online gelesen, dass Outlook 2010 ausschließlich das Feld Betreff zum Threading verwendet. Wenn Sie also die Betreffs wie oben verwenden, werden diese E-Mails NICHT mit einem Thread versehen, was in der Tat der Fall ist. Beachten Sie, dass beispielsweise Google Mail nicht dieselben E-Mails fädelt (die Apple iPhone 4-Mail-App jedoch tatsächlich!).

Also ich meine Jira - Setup die entfernen gezwickt ‚auszuführende Aktion‘ Verb aus dem Subjekt und jetzt die E - Mail - Fächer alles sieht wie folgt aus : [JIRA] (LTST-4) improve documentation. Und Google Mail fädelt sie gerne ein. Outlook 2010 jedoch immer noch nicht!

Kann ich in Bezug auf die Jira-Konfiguration oder die Outlook-Konfiguration etwas tun, um Outlook 2010 zum Threading von Jira-Benachrichtigungs-E-Mails zu zwingen?

Danke, Kirill

Kirillka
quelle

Antworten:

5

Das folgende VBA-Makro hinterlässt nur 1 Nachricht pro Jira-Problem in Ihrem Posteingang. Außerdem werden Nachrichten zu gelösten / geschlossenen Problemen gelöscht, da ich diese nicht ansehen muss

' 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
quelle
1

Outlook 2010 ordnet Konversationen (Threading) nur nach Betreff. Wenn Sie die Aktion aus dem E-Mail-Betreff in JIRA entfernen, sollten Sie sie in Ihrem Outlook-Posteingang zusammenhalten. Möglicherweise müssen Sie Ihre Outlook-Einstellungen überprüfen. Weitere Infos hier .

Justin
quelle
1
Ja das ist, was ich dachte. Kommt leider nicht vor. Nachrichten mit genau demselben Betreff werden NICHT zusammengeführt. Ich habe auch den Link gesehen, den Sie erwähnen, nichts relevantes dort.
Kirillka
0

Ich habe eine Kombination aus dem anderen Antwortbeitrag und diesem Artikel verwendet , um mein eigenes Makro zu schreiben, das die Redemption-Bibliothek zum Zusammenführen der Konversationen verwendet.

Dadurch wird der aktuelle Ordner gescannt, Jira-E-Mails ausgewählt und der Ausgabeschlüssel aus dem Betreff extrahiert. Wenn dieser Schlüssel zuvor nicht angezeigt wurde, wird der Konversationsindex in einer Sammlung basierend auf dem Ausgabeschlüssel gespeichert. Wenn er zuvor gesehen wurde, wird die E-Mail mit dem gespeicherten Konversationsindex aktualisiert.

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

Dies erfordert die folgenden Bibliotheken:

  • Einlösungsbibliothek für vollständigen RDO-Zugriff, erforderlich zum Festlegen des Konversationsindex (dies erfordert keine Erhöhung, um ihn zu registrieren)
  • Ein Verweis auf die Microsoft VBScript Regular Expressions 5.5Bibliothek zum Extrahieren von Ausgabeschlüsseln aus den E-Mail-Betreffs.

Oh, und Sie müssen auch Ihre Makrosicherheitseinstellungen ändern, um es auszuführen.

Deanna
quelle