2015-03-31 86 views
0

我试图获取位于最新Mac Mail.app(OS X 10.10.2)中的一堆电子邮件中的任何链接的文本文档列表优胜美地),并且简直难倒了。从电子邮件中提取URL的Mac Automator/Applescript(?)

我想我可以只...

  1. 在服务/工作流将一对夫妇Automator.app行动起来,邮件内
  2. 选择/高亮所有的电子邮件.app,
  3. 选择该服务或运行该工作流程,
  4. 并有一个文本文档,其中包含可在其中找到的每个URL /链接。

但是,这并没有奏效。

我想出了如何与一个电子邮件一次这样做,但这不是我想要的。附上3个工作流程的屏幕截图。第一个是仅使用一个电子邮件&的作品,突出显示运行服务的所有文本&。另外两个只是不起作用。

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

任何提示或技巧?

screenshot

回答

5

我想通了,你怎么能达到自己的目标,用内的Automator创建一个新的服务(输入:“无输入”,应用“邮件”)开始

的第一个动作是获得所选邮件消息(GET选择:消息)

第二个动作是Exceute的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文档

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

在我的测试中,我发现了一些没有http://的链接到锚点的内部URL,所以也许你想删除所有不以http开头的URL。您可以通过使用其他操作之前完成创建新的TextEdit文档:
过滤段与选项“与http开头段”(不知道这些参数是如何在英文名为Automator的,抱歉)

手感好,迈克尔/汉堡

+0

SWEEEET!非常感谢你 - 完美地工作!!!!!非常感激。 – SyberKnight 2015-04-02 18:46:54

+0

可以确认它的效果很好!如[在此](https://stackoverflow.com/a/37591276/319860)所述,如果要从电子邮件的HTML正文(而不是可见文本)中提取链接,请使用'selectedMail源代替'body '。 – 2017-06-18 15:10:19

+0

要过滤重复的URL,添加一个额外的步骤“运行AppleScript”到工作流:其中i从 '(*地带重复*) 上运行{输入,参数} \t组filteredList到{} \t \t重复1计数输入的项目的 \t \t如果项目i输入的是不是在filteredList然后 \t \t \t组filteredList到filteredList&项目i输入的 \t \t端如果 \t端重复 \t return filteredList end run' (adapted from [here](https://groups.google.com/d/msg/alt.comp.lang.applescript/xjN6WTs30Jo/RRjmhALokpQJ)) – 2017-06-18 15:37:10

相关问题