Нитка повідомлень про повідомлення Jira в Outlook 2010


9

Коли я отримую повідомлення електронної пошти про Jira 4.2 в Outlook 2010, вони не отримують потоки. Звичайно за замовчуванням Джира надсилає електронні листи з такими предметами: [JIRA] Created: (LTST-4) improve documentation, [JIRA] Assigned: (LTST-4) improve documentation. Я читав в Інтернеті, що Outlook 2010 використовує виключно поле Subject для потокової тематики, тому, якщо тематика, як зазначено вище, змусить цих електронних листів НЕ бути потоковими, що справді так. Зверніть увагу, що Gmail, наприклад, не містить нитки цих самих електронних листів (але насправді поштовий додаток Apple iPhone 4!)

Так що я підправив мої налаштування Jira для видалення «дій виконуються» дієслово від суб'єкта і тепер суб'єктів електронної пошти все виглядає наступним чином : [JIRA] (LTST-4) improve documentation. І Gmail із радістю передає їх. Але Outlook 2010 все ще ні!

Чи можу я щось зробити з точки зору конфігурації Jira або конфігурації Outlook, щоб змусити Outlook 2010 передавати нитки електронних листів із повідомленнями про Jira?

Спасибі, Кириле

Відповіді:


5

Наведений нижче макрос VBA залишає лише 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
Так, я думав. На жаль, це не відбувається. Повідомлення з однаковою темою НЕ переплетені разом. Я також бачив посилання, яке ви згадуєте, нічого актуального там немає.
кирилка

0

Я використовував комбінацію іншого повідомлення відповідей , і цієї статті, щоб написати свій власний макрос, який використовує бібліотеку Викупу для злиття розмов.

Це сканує поточну папку, вибираючи будь-які електронні листи 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бібліотеку для вилучення ключів видачі з предметів пошти.

О, і вам також потрібно зв'язати налаштування безпеки макросу, щоб запустити їх.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.