1

在 macOS 中,您可以获得(在此处解释如何)特定电子邮件的 URL。因此,如果您单击该 URL,或者将其粘贴到浏览器搜索栏中,该特定电子邮件将在 Mail.app 中打开。

这样的 URL 看起来像这样message://<CALoR5A+vANPG9eCcHRHnO@mail.gmail.com>

在 Catalina 中,我可以使用命令从命令行open访问这样的 URL,方法是键入

open -a "Mail.app" "message://<CALoR5A+vANPG9eCcHRHnO@mail.gmail.com>"

但是如果我尝试使用 BigSur,我会收到以下错误

The file /Users/macbook/message:/<CALoR5A+vANPG9eCcHRHnO@mail.gmail.com> does not exist.

此行为似乎与BigSur 中的错误有关

两个问题

  1. 您知道该open命令是否仍可用于该任务吗?

  2. 或者,我正在寻找一种解决方法。必须有可能实现我所期望的行为,因为如果您message://在 Chrome、Safari 或支持超链接的富文本编辑器中传递一个 URL,它就会得到正确处理。

我尝试了很多方法,但都没有成功。

斯威夫特脚本

import AppKit
NSWorkspace.shared.open(URL(string: "message://<CALoR5A+vANPG9eCcHRHnO@mail.gmail.com>")!)

网址是nil

苹果脚本

tell application "Mail"
    activate
    open location "message://<CALoR5A+vANPG9eCcHRHnO@mail.gmail.com>"
end tell

我不确定上面的代码是否可以在 Catalina 中运行,我只知道在我的情况下它只是打开邮件应用程序而不做任何其他事情。

使用 Chrome

如果您message://在 Chrome 中粘贴 URL,它会要求您确认是否要在邮件应用程序中打开它。这可以用以下命令覆盖: defaults write com.google.Chrome URLWhitelist -array 'message://*'

让 Chrome 为您打开一个 URL 看起来是一项更简单的任务,但该命令仍然 open -a "Google Chrome" "message://<CALoR5A+vANPG9eCcHRHnO@mail.gmail.com>" 失败,并出现类似于前面显示的错误:

LoR5A+vANPG9eCcHRHnO@mail.gmail.com>"
The file /Users/macbook/message:/<CALoR5A+vANPG9eCcHRHnO@mail.gmail.com> does not exist.

有任何想法吗?

4

1 回答 1

1

open我找到了命令不再起作用的原因:需要转义尖括号。

以下命令不起作用

open -a "Google Chrome.app" "message:<CALoR5A+vANPG9eCcHRHnO_fNTrzgbMpX666oBGxHWsRaXb5@mail.gmail.com>"

下面打开Mail应用,会报URL坏了

open -a "Google Chrome.app" "message:CALoR5A+vANPG9eCcHRHnO_fNTrzgbMpX666oBGxHWsRaXb5@mail.gmail.com>"

最后,通过转义 URL,它可以工作:

open -a "Google Chrome.app" "message:%3CCALoR5A%2BvANPG9eCcHRHnO_fNTrzgbMpX666oBGxHWsRaXb5%40mail.gmail.com%3E"

请注意,您可以使 URL 以message:or开头message://,这无关紧要。

于 2021-02-19T00:20:25.383 回答