Извлечение ссылок из электронной почты на основе текста привязки, а не ссылки

2

Я собираю рабочий процесс Automator, который позволит мне привязать горячую клавишу к списку Smart Mailbox и эффективно автоматизировать задачу нажатия «Отписаться» в электронных письмах с такой текстовой строкой.

До сих пор я был незначительно успешным, если на фактическом URL есть слово «отписаться». Вместо этого я хотел бы найти, где появляется слово «Отписаться», и вместо этого получить только те URL-адреса. Итак, в терминах HTML представьте, что я нахожу ссылку по ее тексту, а затем воздействую на href

Когда я использую content Я получаю только содержимое письма, но при использовании source Я получаю ссылки. В основном мне нужен способ сопоставить контент с источником.

Я надеюсь, что в этом есть смысл. Это то, что я до сих пор:

on run {input, parameters}
set theSource to {}
tell application "Mail"
    repeat with aMessage in input
        -- source or content
        set end of theSource to aMessage's source & return
    end repeat
end tell

return theSource as text
end run
webkenny
источник
Некоторые из них будут ссылками mailto, а не href
markhunte
Правда. Я в порядке с теми, кто был схвачен. Как только у меня вернутся ссылки, я думаю, что смогу определить, что делать. отправьте электронное письмо или откройте браузер.
webkenny
Вы нашли решение этой проблемы? Я ищу что-то подобное.
james_fuller
К сожалению, пока нет. Я отложил это пока, но я все еще заинтересован в этом.
webkenny

Ответы:

1

Автоматически выполнять HTML в электронном письме.

Я не знаком со Smart Mailbox и тем языком, который он использует, но ниже приведен скрипт VBA для Outlook, который ищет текст «Click», который является ссылкой к URL, извлекает URL и выполняет его в Internet Explorer в качестве веб-ссылки.

Код очень запутан с небольшой документацией, но он использует функциональность Split Array VBA, чтобы разбить строки сообщения электронной почты, а затем извлечь правильную строку после двойных кавычек "" (Chr (34)), используя позиционирование массива т.е. массив urltag (1) - первый элемент в массиве urltag.

Надеюсь, это кому-нибудь поможет.

LaunchURL(itm As MailItem)

Dim bodyString As String
Dim bodyStringSplitLine
Dim bodyStringSplitWord
Dim targetline
Dim urltag
Dim splitLine
Dim splitWord
Dim intCount As Integer
Dim Fail As Integer
Dim Beforecurrent As Integer
Dim Aftercurrent As Integer
Dim Found As Integer


Fail = 0
Found = 0

bodyString = itm.HTMLBody ' Mailitem.body vs Mailitem.HTMLBody  - oMailitem.body
bodyStringSplitLine = Split(bodyString, vbCrLf) 'vbCrLf has no meaning in HTML?

For Each splitLine In bodyStringSplitLine
    bodyStringSplitWord = Split(splitLine, " ")


    For intCount = LBound(bodyStringSplitWord) To UBound(bodyStringSplitWord)
    'For Each splitWord In bodyStringSplitWord ie find out how many iterations to do.

    If intCount > 2 Then
    Beforecurrent = intCount - 1
    Aftercurrent = intCount + 2
    Else
    Beforecurrent = 1
    End If

        If bodyStringSplitWord(intCount) = "click" Then

            targetline = bodyStringSplitWord(Aftercurrent)
            urltag = Split(targetline, Chr(34))
           'i = MsgBox(urltag(1), vbOKOny) test box remove apostrophe to uncomment

            Shell ("C:\Program Files\Internet Explorer\IEXPLORE.EXE" & " " & urltag(1))
           'Shell ("cmd" & " " & "/k" & " " & "echo" & " " & bodyStringSplitWord(Aftercurrent) & " " & Fail & " " & Beforecurrent)   test box remove apostrophe to uncomment

        Found = 1

        Exit Sub
        Else:

        Fail = Fail + 1

        'Shell ("cmd" & " " & "/c" & " " & "echo boo hoo") Test box remove apostrophe to uncomment

        End If
    Next

Next

Set itm = Nothing

End Sub
Paul
источник