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

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

我每天都会写日记,我喜欢在邮件消息中添加链接,我的邮件客户端是 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。)

相关内容