![如何在不使用拖放操作的情况下将链接复制到 Mail.app 消息?](https://linux22.com/image/1209796/%E5%A6%82%E4%BD%95%E5%9C%A8%E4%B8%8D%E4%BD%BF%E7%94%A8%E6%8B%96%E6%94%BE%E6%93%8D%E4%BD%9C%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%B0%86%E9%93%BE%E6%8E%A5%E5%A4%8D%E5%88%B6%E5%88%B0%20Mail.app%20%E6%B6%88%E6%81%AF%EF%BC%9F.png)
我每天都会写日记,我喜欢在邮件消息中添加链接,我的邮件客户端是 OSX 上的 Mail.app。我可以将链接拖放到我的日记程序 (VoodooPad) 中,但我更喜欢复制并粘贴它们,因此我有一个链接,如下所示:message://%3C30533360.1931252053580.bla.bla.bla。
有没有简单的方法可以从 Mail.app 获取这种格式的链接?
答案1
根据 splattne 的回应,以及这个macosxhints 条目,我找到了解决方法。现在,只需使用 Quicksilver 或 FastScripts 之类的工具将其绑定到键盘快捷键即可。
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
答案2
如果我正确解释了您的问题,您可以在这些博客文章中使用 AppleScript 的变体:
答案3
这不是对您自己已经回答过的问题的回答,而只是为了存档:
从网站或电子邮件保存文件后,可以使用 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
。)