Outlook 2010でのJira通知メールのスレッド化


9

Outlook 2010でJira 4.2通知メールを受信すると、スレッド化されません。もちろん、デフォルトでは、Jiraは次のような件名のメールを送信します:[JIRA] Created: (LTST-4) improve documentation[JIRA] Assigned: (LTST-4) improve documentation。Outlook 2010では、スレッドの件名フィールドのみを使用しているため、上記の件名を使用すると、メールがスレッド化されないように強制されます。たとえば、Gmailは同じメールをスレッド化しないことに注意してください(ただし、Apple iPhone 4メールアプリは実際にスレッド化します!)。

そのため、Jiraの設定を調整して、件名から「実行されたアクション」動詞を削除すると、メールの件名はすべて次のようになります[JIRA] (LTST-4) improve documentation。そして、Gmailは喜んでそれらをスレッド化します。しかし、Outlook 2010はまだそうではありません!

Jiraの設定またはOutlookの設定に関して、Outlook 2010でJira通知メールを強制的にスレッド化するためにできることはありますか?

ありがとう、キリル

回答:


5

次のVBAマクロは、受信トレイにJiraの問題ごとにメッセージを1つだけ残します。また、解決済み/クローズ済みの問題に関するメッセージも削除します。これらを見る必要がないためです。

' 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は件名のみで会話(スレッド)を調整します。JIRAで電子メールの件名から「アクション」を削除すると、それらがOutlookの受信トレイにまとめられます。Outlookの設定を確認する必要があるようです。詳細については、こちらをご覧ください


1
うん、そう思った。残念ながら起こりません。同じ件名のメッセージはスレッド化されません。あなたが言及しているリンクも見ましたが、そこには何の関連もありません。
キリルカ'17年

0

他の回答 投稿とこの記事を組み合わせて、Redemptionライブラリを使用して会話をマージする独自のマクロを作成しました。

これにより、現在のフォルダーがスキャンされ、すべてのjiraメールが選択され、件名から課題キーが抽出されます。以前にそのキーを見たことがない場合は、問題のキーに基づいて会話インデックスをコレクションに保存します。以前に見た場合、保存されている会話インデックスでメールを更新します。

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

これには次のライブラリが必要です。

  • 会話インデックスを設定するために必要な、完全なRDOアクセス用の償還ライブラリ(登録するために昇格は必要ありません)
  • Microsoft VBScript Regular Expressions 5.5メールの件名から課題キーを抽出するためのライブラリへの参照。

ああ、それを実行するには、マクロのセキュリティ設定も調整する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.