Dariush Shaban

プロジェクト / MercuryMail

MercuryMail ― macOS向けGmailの即時プッシュ通知

AppleとGoogleのプッシュ通知をめぐる対立の影響で、macOSのMail.appはGmailのメールをなかなか取得してくれません。MercuryMailは、Mail.appでGmailを使い続けながら、即座に通知を受け取りたい方のためのシンプルな解決策です。

無料・オープンソース。macOS 13以降が必要です。

2つのサンプルアカウントの最近のメッセージを未読マーク付きで一覧表示し、その下に操作メニューが並んだMercuryのドロップダウンメニュー。

できること

通知がすぐに届く

GmailがIMAP IDLEでMercuryにプッシュするため、メールが届いた瞬間にmacOS標準の通知が表示されます。差出人と件名を表示するかどうかは選べます。

アカウントは2つまで

未読数はメニューバーのアイコンの横に表示され、アカウントごとに色を変えられます。通知のオン・オフはアカウントごとに選べ、未読がないあいだは表示を隠すこともできます。

クイックアクション

メールを開かずに、フラグを付ける、既読・未読を切り替える、認証コードをコピーする、本文中のリンクを選ぶといった操作ができます。

スワイプ対応パネル(ベータ)

Mail.appのように2本指でメッセージをスワイプできる、任意のフローティングパネルです。macOS 26ではLiquid Glassの見た目にも対応しています。

邪魔にならない

Dockにアイコンは出ません。グローバルショートカットで一覧を開き、もう一度押すと閉じます。通知を1時間止めたり、ログイン時に自動で起動したりもできます。

テレメトリなし

Mercuryが通信するのは imap.gmail.com と、アップデート確認時のGitHubだけです。間に私のサーバーはなく、アプリパスワードはキーチェーンに保存されます。

自動アップデート

Mercuryは新しいバージョンを自動で確認し、ワンクリックでインストールできます。アップデートは署名・公証済みで、確認はオフにもできます。

Gmailで返信

メッセージの「返信」を押すと、宛先と件名が入力済みのGmail作成画面が開きます。

自分好みに

未読数の色の変更、未読がないときのアカウント非表示、グローバルショートカットの設定ができます。

画面を見る

アプリアイコン、ようこそのメッセージ、進行状況のドットが表示されたMercuryの初回起動ウィンドウ。

初回起動時にご案内します

2段階認証をオンにし、アプリパスワードを作成して入力します。Mercuryは保存する前に実際にGmailへのログインを試すので、入力ミスのせいで壊れたアカウントが残ることはありません。

Mercuryのメニューバー設定画面。1アカウントの場合と2アカウントの場合のメニューバーバッジのライブプレビューと、アカウントごとの未読数の色の設定。

色はライブプレビューで確認

メニューバーのアイコンの横に未読数が表示されます。アカウントごとに色を選べて、バッジの見え方を設定画面でその場で確認できます。

2つのサンプルアカウントが表示されたMercuryのアカウント設定。表示名、アドレス、通知のオプションがあります。

2つのアカウントを個別に設定

アカウントごとに名前を付け、通知するかどうかを選べます。未読がないあいだは一覧から隠せるので、メニューには対応が必要なメールだけが表示されます。

2つのサンプルアカウントの最近のメッセージを、未読マークとクイックアクション付きで一覧表示したMercuryのスワイプ対応パネル。

スワイプ対応パネル

未読を先頭に、アカウントごとにまとめて表示し、よく使う操作はワンクリックで行えます。ベータ版でデフォルトはオフ、従来のドロップダウンもそのまま使えます。

ログイン方法

Mercuryは「Googleでログイン」ではなく、Googleのアプリパスワードでサインインします。IMAPでメールボックス全体にアクセスする権限はGoogleの制限付きスコープにあたり、これを使うアプリは審査と有料のセキュリティ評価を通過する必要があります。小さな無料アプリにはそこまでの価値がなく、アプリパスワードならすべてがMacの中で完結します。

その代わり、最初に一度だけ設定が必要で、そのための画面が初回起動ウィンドウです。Googleアカウントで2段階認証をオンにしておく必要があります。

内部の仕組み

使用技術
  • Swift
  • AppKit
  • Network.framework
  • IMAP IDLE
IMAPクライアント
Network.framework上にゼロから実装(ポート993へのTLS接続)しています。そのため、サードパーティ製の依存関係がない小さな単一バイナリになっています。
配布
Swiftパッケージとしてビルドし、GitHub ReleasesでDMGとして配布しています。
プライバシー
アナリティクスやトラッキングはありません。認証情報はmacOSのキーチェーンに保存され、メールはGmailから直接読み込まれます。
ライセンス
オープンソース。ソースコードとIssueはGitHubで。