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.5
perpustakaan untuk mengekstrak kunci masalah dari subjek email.
Oh, dan Anda juga perlu mengetuk pengaturan keamanan makro Anda untuk menjalankannya.