如何在不使用拖放的情况下将链接复制到Mail.app消息?


8

我保留每日日记,并且喜欢链接到电子邮件,我的邮件客户端是OSX上的Mail.app。我可以将链接拖放到日记程序(VoodooPad),但是我真的更喜欢复制并粘贴它们,因此我有一个链接类似于message://%3C30533360.1931252053580.bla.bla.bla。

是否有一种简单的方法可以从Mail.app获取此格式的链接?

Answers:


9

基于splattne的响应以及此macosxhints条目,我弄清楚了如何做到这一点。现在,只需使用FastScripts的Quicksilver之类的东西将其绑定到键盘快捷键即可。

tell application "Mail"
  set selectedMessages to selection
  set theMessage to item 1 of selectedMessages  
  set messageid to message id of theMessage
    -- Make URL (must use URL-encoded values for "<" and ">")
  set urlText to "message://" & "%3c" & messageid & "%3e"  
  set the clipboard to (urlText)     
end tell

1
这也适用于OS X Mavericks,其中拖放功能似乎很容易碰到。
2013年


0

不是针对您已经回答自己的问题的答案,而只是针对档案:

从网站或电子邮件中保存文件后,可以使用Finder中的“获取信息”来查找文件的来源。对于电子邮件附件,它显示消息发件人,主题和引用该消息的URL。

除了获取信息,还可以使用命令行来获取信息:

mdls -name kMDItemWhereFroms <文件名>

使用open这样的URL命令将使OS X激活默认应用程序,就像它将激活文本文件的TextEdit一样。对于message:URL,将启动Mail.app以显示消息(如果消息仍然存在)。

结合上面链接中的注释提供的一些AppleScript:

on open these_items 
   set first_item to item 1 of these_items 
   set full_path to quoted form of POSIX path of first_item 

   set cmd to ¬ 
      "/usr/bin/mdls -name kMDItemWhereFroms " & ¬ 
      full_path & " | grep 'http:\\|https:\\|message:' | xargs open" 
   do shell script cmd 
end open

将上面的AppleScript粘贴到脚本编辑器中,然后将其另存为应用程序,并选择仅运行。现在,将任何文件拖到该应用程序上时,将打开源(如果适用)。我当然不是AppleScript专家,并且上面没有做任何错误处理,当多个文件放到应用程序上时,它只是获取第一个文件,并且不支持目录。但是,我猜一个主意。

(在反斜线http:\\以上是有意的,并且不应该读取//的脚本搜索。http:https:message:换言之:它们不旨在成为其中的一部分http://,但一起形成一个转义反斜杠,为了躲避管字符在grep命令)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.