ショートカットとAppleScriptを使ってメールメッセージへのマークダウンリンクを生成する

ショートカットとAppleScriptを使ってメールメッセージへのマークダウンリンクを生成する
ショートカットとAppleScriptを使ってメールメッセージへのマークダウンリンクを生成する

今週AppStoriesで取り上げたシステムアプリのアップデートの中で、私が最も楽しみにしているのはメールです。この秋、ついにメールアプリにいくつかの高度な機能が導入される予定です。

  • 送信取り消し機能により、メッセージを送信してから 10 秒以内であればメッセージを取り消すことができます。
  • メッセージのスケジュール設定。将来の配信日時の提案と完全にカスタマイズ可能。
  • フォローアップでは、返信がなかったメッセージ内のリクエストが表示されます。
  • リマインドミーは、後で受信トレイにメッセージを再表示するようにスケジュールするスヌーズのような機能です。
  • 受信者と添付ファイルが見つからないというアラート
  • 検索機能の改善

このリストのおかげで、Mailは久しぶりにサードパーティ製アプリのより魅力的な選択肢となりました。Mailはサードパーティ製アプリの全ての機能を備えているわけではありませんが、高度なメールクライアント機能に対する私のニーズはそれほど高くなく、Appleがターゲットとするユーザー層にまさに合致していると思います。

最近まで、メールアプリはMacでしか使えないMimestreamと、iOSとiPadOSで使えるSparkを使い分けていました。この使い分けは理想的とは言えませんでしたが、ほとんどのメールをMacで処理しているので、我慢していました。

ここ数週間、すべてのデバイスでメールだけを使っていて、気分転換にはなりました。とはいえ、完璧ではありません。サードパーティ製のメールクライアントで最もよく使う機能の中で、メールの最大の欠点はディープリンクの実装がぎこちない点です。

重要なコンテキスト情報に素早くアクセスするために、メモやタスクにメールメッセージへのリンクを頻繁に挿入しています。MimestreamはGmailのURLを提供し、SparkはアプリのUI内でアプリ固有のURLやWeb URLを作成できます。

一方、iOSとiPadOSでは、メールメッセージへのリンクは、メールアプリから他のアプリのテキストフィールドにドラッグする以外に方法がありません。これは良いのですが、共有シートやショートカットを使って簡単にリンクを生成できればもっと良いと思います。Macでも状況はそれほど良くなく、ユーザーはAppleScriptを使ってメールメッセージにリンクするURLを作成する必要があります。

数週間にわたるVenturaのテストを控えていたので、状況を改善するために何ができるか試してみることにしました。結果は完璧ではありません。iOSとiPadOSでは、依然としてメッセージをドラッグ&ドロップするしか選択肢がありません。しかし、MacではAppleScriptと、Raycastを使ってメールの件名をURLにリンクするショートカットを組み合わせることで、操作性を改善しました。コンテキストを分かりやすくするために、このショートカットには送信者名も追加しました。

このプロジェクトに着手するにあたり、自動化フォーラムで何年も話題になっている、David Sparks 氏が書いた Python ベースの AppleScript の存在を知っていました。問題は、Mac に Python がプリインストールされなくなったことです。インストール自体は難しくありませんが、Python に依存しないメッセージリンクを作成する、もっと簡単な方法があるのではないかと考えていました。

結局のところ、私がやろうとしていたことはとてもシンプルです。私が書いたスクリプトの種は、iOS 7時代にフェデリコがメールのURLスキームをどのように使っていたかについて書いた記事から始まりました。その記事は、ジョン・グルーバーが2007年にDaring Fireballに投稿したスクリプトを参考にしていました。そのスクリプトを参考に、メールに内蔵されたAppleScriptサポートと、Pythonを必要としないシングルアクションのショートカットを使って、独自のスクリプトを作成するのにそれほど時間はかかりませんでした。

MailはAppleScriptを幅広くサポートしているため、メッセージの構成要素へのアクセスは非常に簡単です。まず、_msgMailで選択したメッセージを変数に設定します。次に、_messageURLメッセージのメッセージIDを取得し、URLスキームにドロップします。URLスキームは、メッセージがどこに保存されているかに関係なくMailアプリで開くようにします。次に、メッセージの件名と送信者にアクセスします。そして、送信者変数から名前を取得します。extract name from変数には送信者の名前とメールアドレスが含まれていますが、私が取得したいのは送信者の名前だけです。

最後のステップは、これらすべてをMarkdown形式のテキストの単一の文字列として組み立て、AppleScriptの文字列構築構文を使ってクリップボードにコピーすることです。次に、このスクリプトを「AppleScriptを実行」アクションを使って実行する単一アクションのショートカットに埋め込みます。これで、メモアプリやタスクマネージャーの横にメールアプリを開き、Raycastを呼び出してショートカットに割り当てたエイリアス(mlink)またはキーボードショートカット(⌃M)を入力するだけで、メッセージとその送信者へのリンクを貼り付けることができます。さらに、作成したリンクはiOS、iPadOS、macOSで動作します。

以下からダウンロードできる私のメールリンクショートカットは、Mac でのメッセージへのリンク方法を改善しました。ただし、iPhone と iPad ではドラッグアンドドロップに頼らなければならないため、完璧ではありません。私が本当に望んでいるのは、Apple からのより優れたソリューションです。Ventura は、プラットフォーム間や他のユーザーとのコラボレーションを通じて、システムアプリの相互運用性を向上させます。次のステップはコンテンツレベルでのより深い統合になるはずです。これは、iOS、iPadOS、macOS のフォーカス設定に基づいて、カレンダー、メールボックス、タブグループ、その他のコンテンツを状況に応じて表示する Apple の新しい方法である Focus Filters の前兆であると考えたいものです。うまくいけば、Apple からユーザーフレンドリーなディープリンクソリューションが将来登場します。しかしそれまでは、Mac ではメールリンクを使用し、iPhone と iPad ではドラッグアンドドロップを使用することにします。

メールリンクはここからダウンロードできます:

クラブ・マックストーリーズ

追加コンテンツと特典にアクセスする

Club MacStories は 2015 年に設立され、ほぼ 10 年間にわたって毎週独占コンテンツを提供してきました。

毎週、毎月の電子メール ニュースレターから始まったものが、すべての MacStories ファン向けに設計されたメンバーシップ ファミリーに成長しました。

詳細については、こちらおよびクラブの FAQ をご覧ください。

Club MacStories : アプリ、ヒント、自動化ワークフロー、長​​文執筆、MacStories Unwind ポッドキャストへの早期アクセス、定期的な景品など、盛りだくさんの情報を満載した、電子メールと Web 経由の週刊および月刊ニュースレター。

Club MacStories+ : Club MacStories が提供するすべての機能に加え、アクティブな Discord コミュニティ、クラブの過去のカタログ全体を閲覧するための高度な検索機能とカスタム RSS 機能、ボーナス コラム、多数のアプリ割引などが含まれます。

Club Premier : 上記のすべてに加え、早期に、広告なしで、高ビットレートのオーディオで配信される当社の主力ポッドキャストの拡張バージョンである AppStories+ が含まれます。