Mengirim email pemberitahuan Jira di Outlook 2010


9

Ketika saya menerima email pemberitahuan Jira 4.2 di Outlook 2010, mereka tidak mendapatkan utas. Tentu saja secara default Jira mengirim email dengan subjek seperti ini: [JIRA] Created: (LTST-4) improve documentation, [JIRA] Assigned: (LTST-4) improve documentation. Saya membaca secara online bahwa Outlook 2010 semata-mata menggunakan bidang Subjek untuk di-thread, sehingga memiliki subjek seperti di atas akan memaksa email tersebut TIDAK untuk di-threaded, yang memang demikian. Perhatikan bahwa Gmail, misalnya, juga tidak mengirim email yang sama (tetapi aplikasi email Apple iPhone 4 benar-benar melakukannya!).

Jadi saya tweak pengaturan Jira saya untuk menghapus 'tindakan yang dilakukan' kata kerja dari subjek dan sekarang mata pelajaran email semua terlihat seperti ini: [JIRA] (LTST-4) improve documentation. Dan Gmail dengan senang hati memasang mereka. Tetapi Outlook 2010 masih belum!

Apakah ada yang bisa saya lakukan dalam hal konfigurasi Jira atau konfigurasi Outlook untuk memaksa Outlook 2010 untuk mengirim email pemberitahuan Jira?

Terima kasih, Kirill

Jawaban:


5

Makro VBA berikut hanya menyisakan 1 pesan per masalah Jira di Kotak Masuk Anda. Itu juga menghapus pesan tentang masalah terselesaikan / tertutup, karena saya tidak perlu melihatnya

' 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 mengatur percakapan (threading) dengan subjek saja. Menghapus 'tindakan' dari subjek email di JIRA akan membuatnya bersama di kotak masuk Outlook Anda. Sepertinya Anda perlu memeriksa pengaturan Outlook Anda. Info lebih lanjut tersedia di sini .


1
Ya, itulah yang saya pikirkan. Sayangnya, itu tidak terjadi. Pesan dengan subjek yang persis sama TIDAK di-threaded bersamaan. Saya juga melihat tautan yang Anda sebutkan, tidak ada yang relevan di sana.
kirillka

0

Saya menggunakan kombinasi dari posting jawaban lainnya , dan artikel ini untuk menulis makro saya sendiri yang menggunakan perpustakaan Penebusan untuk menggabungkan percakapan.

Ini memindai folder saat ini, memilih email jira apa pun, mengekstrak kunci masalah dari subjek. Jika itu tidak melihat kunci itu sebelumnya, itu menyimpan indeks percakapan dalam koleksi berdasarkan kunci masalah, dan jika telah melihatnya sebelumnya, itu memperbarui email dengan indeks percakapan yang disimpan.

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

Ini membutuhkan perpustakaan berikut:

  • Perpustakaan penukaran untuk akses RDO penuh, diperlukan untuk mengatur indeks percakapan (ini tidak memerlukan elevasi untuk mendaftarkannya)
  • Referensi ke Microsoft VBScript Regular Expressions 5.5perpustakaan untuk mengekstrak kunci masalah dari subjek email.

Oh, dan Anda juga perlu mengetuk pengaturan keamanan makro Anda untuk menjalankannya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.