Команда открытия BigSur больше не обрабатывает URL-адреса message://, обходные пути?
В macOS вы можете получить (объясняется здесь, как ) URL-адрес определенного электронного письма. Таким образом, если вы нажмете на этот URL-адрес или вставите его в строку поиска браузера, это конкретное электронное письмо откроется в Mail.app.
Такой URL выглядит так
message://<CALoR5A+vANPG9eCcHRHnO@mail.gmail.com>
В Catalina я мог использовать команду для доступа к такому 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.
Два вопроса
Вы знаете, если
open
команда все еще может быть использована для этой задачи?В качестве альтернативы я ищу обходной путь. Должно быть возможно достичь ожидаемого поведения, потому что если вы пропустите URL-адрес в Chrome, Safari или в редакторе форматированного текста, который поддерживает гиперссылки, он будет правильно обработан.
Я пробовал, но безуспешно многие подходы.
Быстрый скрипт
import AppKit
NSWorkspace.shared.open(URL(string: "message://<CALoR5A+vANPG9eCcHRHnO@mail.gmail.com>")!)
URL-адрес
nil
.
Сценарий Apple
tell application "Mail"
activate
open location "message://<CALoR5A+vANPG9eCcHRHnO@mail.gmail.com>"
end tell
Я не уверен, что приведенный выше код работал бы в Catalina, я просто знаю, что в моем случае он просто открывает приложение Mail, ничего не делая.
Использование Chrome
Если вы вставите
message://
URL-адрес в Chrome, он просит вас подтвердить, что вы хотите открыть его в приложении Mail. Это можно изменить с помощью следующей команды:
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.
Есть идеи?
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:
или же
message://
, неважно.