
最近、メールを「悪夢」と呼ぶのが流行っていることは承知していますが、実際のところ、私にとってメールはうまく機能しています。複数のアドレスを設定し、フィルターとスマートフォルダを使ってメールの整理と検索を自動化しています。iOS開発者が、古い問題を新しい方法で解決するメールアプリの開発に再び関心を寄せているのも、嬉しいことです。しかし、一つだけ気に入らないことがあります。それは、Appleのメールアプリで、設定済みのアカウントと署名を切り替えるのに何度もクリックしなければならないことです。ご想像の通り、AppleScriptと(オプションで)Keyboard Maestroを使って、このプロセスを自動化する方法を思いつきました。
毎日、異なるメールアドレス宛に複数のメッセージが届きますが、返信には必ず同じアドレスと署名を使いたいと考えています。Appleのメールアプリは、統合された受信トレイですべてのアカウントに送信されたメッセージを簡単に確認できますが、常にデフォルトとして扱うべきアカウントと署名をデフォルト設定するのが驚くほど難しいのです。アカウントや署名のメニューをクリックするのは面倒です。⌘Rキーを押して、希望するアカウントと署名が既に設定された新しい返信ウィンドウを開きたいのです。
Shawn Blanc 氏の古い投稿(彼は私とは違う問題を解決しています)に触発され、Keyboard Maestro を起動してアクションをいろいろ試してみました。Shawn 氏の投稿のおかげで、Keyboard Maestro のキーボードショートカットはシステムのショートカットよりも先に OS X にインターセプトされることを思い出しました。つまり、Mail と同じ ⌘R ショートカットを使い、それをカスタムアクションに割り当てた場合、 OS X はデフォルトの Mail ではなく、自分のアクションを先に起動するということです。これは、私が探していたマクロを作成するための良い出発点になりそうです。
ありがたいことに、AppleはAppleScriptを忘れておらず、Mail.appも同様です。クールな人たちの間では(おそらくメールのように)時代遅れかもしれませんが、AppleScriptを使えば、選択したメッセージへの返信を開始したり、署名や送信者を指定したりすることができます。
tell application "Mail" set theSignatureName to "Signature #1" set theMessages to the selected messages of the front message viewer set theMessage to first item of theMessages set theOutgoingMessage to reply theMessage with opening window set message signature of theOutgoingMessage to signature theSignatureName set sender of theOutgoingMessage to "Federico Viticci " end tell
MailのAppleScript辞書を調べて、どこを見ればよいかがわかれば、それをまとめるのは簡単でした。[1] 2行目は、Mailに「Signature #1」という署名を探すように指示しています。これはリッチテキスト署名である可能性があり、Mailの環境設定を開いて「署名」タブで探すと名前がわかります。
3行目と4行目では、現在選択されているメッセージ、特に選択範囲の最初の項目を取得します。これにより、CC/BCCアドレスやスレッド化された会話を含むメッセージで複数の返信ウィンドウが開かないようにすることができます。5行目では新しいウィンドウで返信を開始し、6行目ではスクリプトの先頭で取得した署名をメッセージの署名に設定し、7行目では送信者を設定します。
既にお気づきかもしれませんが、送信者名とメールアドレスは、Appleのメールアプリ「From:」ドロップダウンメニューで使用されているのと同じ形式でフォーマットされています。AppleScriptでは、同じ形式をテキスト文字列として記述するだけです。
キーボードショートカットが押された後に AppleScript を実行する単純なマクロと組み合わせることで、これまでどおり ⌘R を押すことで、送信者アカウントと電子メール署名を希望どおりに設定する返信ウィンドウを開くことができるようになりました。これは私が常に望んでいたことです。
別のメール アドレスから返信する必要がある場合に備えて、選択可能なメール アドレスを含むドロップダウン メニューを表示し、キーボード ショートカットを押すと AppleScript を使用して署名と送信者を設定するマクロのバリエーションを作成しました。
ドロップダウンメニューを作成するために、Keyboard Maestroの「ユーザー入力を促す」機能を使用し、Keyboard Maestroのドキュメントで推奨されているようにオプションをフォーマットしました。つまり、オプションはバー(|)で区切り、デフォルトで選択したいオプションを行頭に繰り返し配置します。プレーンテキストでは、次のようになります。
Federico Viticci <[email protected]>|Federico Viticci <[email protected]>|Federico Viticci <[email protected]>|Federico Viticci <[email protected]>
tell application "Keyboard Maestro Engine" set KMVarAccount to get value of variable "Email Account" tell application "Mail" set theSignatureName to "Signature #1" set theMessages to the selected messages of the front message viewer set theMessage to first item of theMessages set theOutgoingMessage to reply theMessage with opening window set message signature of theOutgoingMessage to signature theSignatureName set sender of theOutgoingMessage to KMVarAccount end tell end tell
選択すると、値は「Email Account」という変数に保存され、2 行目の (調整された) AppleScript によって取得され、9 行目で使用されます。
この方法では、メール アカウントを選択するために追加のクリックを実行する必要がありますが、Keyboard Maestro の AppleScript と Mail および OS X との統合は維持されます。ヒント: ショートカットが他のアプリによってトリガーされないようにするには、Keyboard Maestro でマクロ グループを作成し、Mail.app でのみ使用できるようにします。
このソリューションをここ2週間毎日使っていますが、Macの特性によって(今でも)実現可能な自動化の良い例だと思います。マクロはこちらからダウンロードできます。
- Apple のフォーラム、Mac OS X ヒント、GitHub、そしてもちろん Macscripter。↩︎
追加コンテンツと特典にアクセスする
Club MacStories は 2015 年に設立され、ほぼ 10 年間にわたって毎週独占コンテンツを提供してきました。
毎週、毎月の電子メール ニュースレターから始まったものが、すべての MacStories ファン向けに設計されたメンバーシップ ファミリーに成長しました。
詳細については、こちらおよびクラブの FAQ をご覧ください。
Club MacStories : アプリ、ヒント、自動化ワークフロー、長文執筆、MacStories Unwind ポッドキャストへの早期アクセス、定期的な景品など、盛りだくさんの情報を満載した、電子メールと Web 経由の週刊および月刊ニュースレター。
Club MacStories+ : Club MacStories が提供するすべての機能に加え、アクティブな Discord コミュニティ、クラブの過去のカタログ全体を閲覧するための高度な検索機能とカスタム RSS 機能、ボーナス コラム、多数のアプリ割引などが含まれます。
Club Premier : 上記のすべてに加え、早期に、広告なしで、高ビットレートのオーディオで配信される当社の主力ポッドキャストの拡張バージョンである AppStories+ が含まれます。