我保留每日日记,并且喜欢链接到电子邮件,我的邮件客户端是OSX上的Mail.app。我可以将链接拖放到日记程序(VoodooPad),但是我真的更喜欢复制并粘贴它们,因此我有一个链接类似于message://%3C30533360.1931252053580.bla.bla.bla。
是否有一种简单的方法可以从Mail.app获取此格式的链接?
我保留每日日记,并且喜欢链接到电子邮件,我的邮件客户端是OSX上的Mail.app。我可以将链接拖放到日记程序(VoodooPad),但是我真的更喜欢复制并粘贴它们,因此我有一个链接类似于message://%3C30533360.1931252053580.bla.bla.bla。
是否有一种简单的方法可以从Mail.app获取此格式的链接?
Answers:
基于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
如果我正确解释了您的问题,则可以在以下博客文章中使用AppleScript的变体形式:
不是针对您已经回答自己的问题的答案,而只是针对档案:
从网站或电子邮件中保存文件后,可以使用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
命令)