Mac Automator/Applescript(?) 从邮件中提取 URL

Mac Automator/Applescript(?) to extract URL's from Mail messages

我正在尝试获取驻留在最新 Mac Mail.app (OS X 10.10.2 Yosemite), 我简直被难住了。

我以为我可以...

  1. 将几个 Automator.app 动作放在一起 Service/Workflow,
  2. Select/highlight Mail.app、
  3. 内的所有电子邮件
  4. Select 该服务或 运行 该工作流程,
  5. 并且有一个文本文档,每个 URL/link 都可以在其中找到。

然而,这并没有奏效。

我想出了如何一次用 一个 电子邮件来做到这一点,但这不是我想要的。附件是 3 个工作流程的屏幕截图。第一个是仅处理一封电子邮件并突出显示其中的所有文本并 运行 服务的那个。其他两个根本不起作用。

我还注意到第一个显示在服务菜单中,打开了一封电子邮件;一旦我突出显示了不止一封电子邮件,该选项就会从“服务”菜单中消失。

有什么提示或技巧吗?

我想出了如何实现您的目标,从在 Automator 中创建一个新服务开始(输入:"No input",应用程序:"Mail")

第一个动作是Get Selected Mail Messages(Get selected: messages)

第二个操作是 使用以下脚本执行 AppleScript

on run {input, parameters}
    set mailContentList to {}
    tell application "Mail"
        repeat with selectedMail in input
            set end of mailContentList to content of selectedMail
        end repeat
    end tell
    return mailContentList
end run

此脚本简单地遍历给定的消息,读出内容并将此列表传递给下一个操作

第三个操作是从文本中提取 URL。这被列为 "Extract Data from Text" 并且其中一种数据类型是 "URLs".

最后的操作是New TextEdit Document

用一个好听的名字保存它 从选定的邮件中提取 URL 之后,该服务在邮件应用程序的服务菜单中可用。

在我的测试中,我发现一些没有 http:// 的内部 URL 从链接到锚点,所以也许您想删除所有不以 http 开头的 URL。您可以在 before 创建新的 TextEdit 文档之前使用另一个操作:
使用选项 "Paragraphs that start with http" 过滤段落(不知道这些参数在英语 Automator 中是如何调用的,抱歉)

感觉很好,迈克尔/汉堡