Потоковая электронная почта уведомлений Jira в Outlook 2010


9

Когда я получаю электронные письма с уведомлениями Jira 4.2 в Outlook 2010, они не получают потоки. Конечно , по умолчанию 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 оставляет только 1 сообщение на проблему Jira в папке «Входящие». Он также удаляет сообщения о разрешенных / закрытых проблемах, поскольку мне не нужно смотреть на эти

' 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
Да, я так и думал. Не бывает, к сожалению. Сообщения с одинаковой темой НЕ объединяются. Я также видел ссылку, которую вы упомянули, там ничего не актуально.
kirillka

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библиотеку для извлечения ключей выдачи из почтовых тем.

О, и вам также нужно отключить настройки безопасности макросов, чтобы запустить его.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.