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

时间:2015-03-31 21:23:19

标签: macos email url applescript automator

我正在尝试获取驻留在最新Mac Mail.app(OS X 10.10.2 Yosemite)中的一堆电子邮件中的任何链接的文本文档列表,我只是被难倒了。

我以为我能够......

  1. 将一些Automator.app操作放在一个服务/工作流中,
  2. 选择/突出显示Mail.app中的所有电子邮件
  3. 选择该服务或运行该工作流
  4. 并且有一个文本文档,其中包含可以在其中找到的每个URL /链接。
  5. 但是,这不起作用。

    我想出了如何使用一个电子邮件一次执行此操作,但这不是我想要的。附件是3个工作流程的屏幕截图。第一个是仅使用一个电子邮件消息的电子邮件。突出显示其中的所有文字&运行服务。其他两个根本就不起作用。

    我还注意到第一个显示在服务菜单中,只打开一封电子邮件;一旦我突出显示多个电子邮件消息,该选项将远离“服务”菜单。

    任何提示或技巧?

    screenshot

1 个答案:

答案 0 :(得分:6)

我想出了如何实现目标,首先在Automator中创建新服务(输入:“无输入”,应用程序:“邮件”)

第一个操作是获取所选邮件(获取选定:邮件)

第二个操作是使用以下脚本执行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”。

最后一项操作是新TextEdit文档

使用一个很好的名称保存它,例如从所选邮件中提取网址 之后,该服务在Mail应用程序内的“服务”菜单中可用。

在我的测试中,我发现了一些没有http://的内部网址,这些网址来自锚点,因此您可能希望删除所有不以 http 开头的网址。您可以在创建新的TextEdit文档之前使用其他操作来执行此操作:
过滤段落,带有选项“以 http 开头的段落”(不知道如何在英语Automator中调用这些参数,抱歉)

感觉很好,迈克尔/汉堡