プログラミングなんてわからないんですけど〜

元プログラマによるプライベートでのプログラミング日記。1/3のつもりだけどソフト関連はここがメイン

Windows11でGmailをアプリとして使うために小細工をする

普段はスマホしか使わないのでgmailについてはネイティブアプリを使用すればいいのですが、Windows11で作業する必要ができたのでGmailをWindows11で呼び出しやすくする必要ができました。
なぜって?そりゃ、「WindowsGmailアプリが存在しない」からです。
googleで「windowsgmail」のキーワードで検索すると、だいたい「WindowsのメールアプリでGmailを使う方法」みたいな題名の記事がずらっと並びます。「いや違うのよ。おいらが使いたいのはGmailのUIなので。」という考えなので、このような題名の記事は無視します。
スクロールすると「Gmail - Google のメール pc ダウンロード - Windows PC アプリ」なんてやつも出てきますが、内容は「Androidソフトウェアエミュレータを使用してAndroidGmailアプリを使う」というやつでした。Android版のアプリを使うなら、Windows11で公式にAndroidアプリ対応がそのうち出るでしょうから待ったほうが良いのではないかと。
「他のメールクライアントでGmailの読み書きをする」っていう方法もありますが、その方法を私は利用しませんので別の方法を考えます。

まあ、この記事を書いている時点での私の選択は「GmailをPWA(Progressive Web Apps)で使う」という方法にしました。PWAなら、Web版Gmailが「さもアプリのように」動くのでまあいいかなと。あくまで「個人的趣味としての選択」なので、「Gmailはこう使え!」というものではないことをご理解ください。

さてさて、方針が決まったらやることを確認します。作業しておけばよさげな項目は以下の通りです。

  1. 「mail.google.com」をPWAとしてインストールする
  2. 「既定のアプリ」のうち、「メール」アプリに割り当てられているものをWebブラウザに変更する
  3. Webブラウザプロトコルハンドラーのうち、「mailto」をGmailに割り当てる

ではでは、始めます。なお、今回使用するWebブラウザは「Microsoft Edge」です。たぶん、他のWindowsWebブラウザでもできると思います。

「mail.google.com」をPWAとしてインストールする

まずはEdgeで「 https://mail.google.com 」にアクセスします。自分のgoogleアカウントでログインすれば、Web版Gmailが開きます。
表示されたWeb版GmailをPWAとしてインストールするには、Edge右上の「・・・」というアイコン(マウスを上に移動すると「設定など(Alt + F)」とホバー表示されるはずです)をクリックすると表示されるメニューから「アプリ」というのを選んで、さらに表示されるサブメニューの「このサイトをアプリとしてインストール」という項目を選びます。そうすると以下のダイアログがでますので、「インストール」ボタンを押します。

f:id:kaias1jp:20220404174645p:plain

そうするとインストールする際に合わせて行われる処理をチェックボックスで選べるダイアログがでますので、必要そうなやつにチェックを入れて「許可」を押すとインストールは完了です。私はデフォルトのままで許可しました。

f:id:kaias1jp:20220404174848p:plain

デフォルトでの許可だとタスクバーにGmailのアイコンが追加されます。

f:id:kaias1jp:20220404175042p:plain

このアイコンをクリックすれば、今開いているEdgeとは別ウィンドウでGmailのWeb版が表示されます。

「既定のアプリ」のうち、「メール」アプリに割り当てられているものをWebブラウザに変更する

これは少し悩みました。「やり方に悩んだ」のではなく、「メールアプリに割り当てられている既定のリンクや既定のファイルの種類をすべて置き換えてもよいのか?」という点でです。なので、まずは「メールアプリを既定のアプリとするリンクやファイルの種類を見てから判断する」ことにしました。
「設定」アプリで「アプリ」ー「既定のアプリ」とたどると、「リンクやファイルの種類」か「アプリ名」で既定のアプリとして登録されているものをしぼりこめます。今回はアプリ名で「メール」を指定してメールアプリを選んでみました。

f:id:kaias1jp:20220404180435p:plain

「メール」のほうをクリックするとこうなります。

f:id:kaias1jp:20220404180608p:plain

一通り見て、「MAILTO」の既定のアプリだけ変更すればよいと判断しました。他のはファイルを読み込むやつとかoutlook限定みたいなので無視します。「MAILTO」の下の「メール」をクリックすると、既定のアプリとして割り当てることができるアプリが選択できます。ここでは「Microsoft Edge」を選択します。

f:id:kaias1jp:20220404181032p:plain

きちんと選択できていれば、このように表示される内容が変わります。

f:id:kaias1jp:20220404181210p:plain

Webブラウザプロトコルハンドラーのうち、「mailto」をGmailに割り当てる

今のところ、以下のように私が設定した内容だけではPWAのGmailではなくEdgeが起動してGmailのサイトを表示してメール作成画面になります。PWAを呼び出すのはまた調べます(PWAのGmailはアプリとして登録されているが、「既定のアプリ」の選択項目には表示されないんだよね)。

この作業は、次の記事を参考にしました。

Gmail | 「mailto:」のリンクをクリックした時にGmailを起動するように各ブラウザで設定する

確実な方法を取ります。まず、Edgeの画面で「 https://mail.google.com 」を開きます。そうすると、アドレスバーにこんなアイコンが出ます。

f:id:kaias1jp:20220404183801p:plain
f:id:kaias1jp:20220404183818p:plain

この「ひし形が2つ重なったようなアイコン」をクリックすると、以下のダイアログが表示されますので「許可」を選んでください。

f:id:kaias1jp:20220404184119p:plain

mailtoのリンクをクリックすると、EdgeでWeb版Gmailが表示されてメール作成画面になります。

f:id:kaias1jp:20220404194137p:plain

テストする場合は、ワードパッドでmailtoリンクを作成すると楽です。

f:id:kaias1jp:20220404194319p:plain

なお、ここでは「 mailto:test@test.internal 」を書いてテストしています。「internal」ドメインは以下のRFCで「Private DNS Namespaces」として規定されているので、インターネット上のどこかのサイトにアクセスしないはず。まあ、試す環境がLANでinternalドメインを使用してサーバーとかを管理している場合には、「test.internal」として登録しているマシンはあるかもしれない。が、あくまでmailtoリンクをテストしているマシンが置かれている組織内の話なのでわからん。不安なら、「 mailto:test 」でもmailtoリンクをクリックしたときの挙動は確認できると思う。

RFC 6762 - Multicast DNS

なお、「ひし形が2つ重なったようなアイコン」が表示されないケースがあります。これは「すでにmail.google.comに対するプロトコルハンドラーが設定されている」場合に起こります。設定画面の以下のところで確認できますので、「拒否」になっていたらいったん「メールリンクのハンドラー」から「mail.google.com」を削除してもう一度Edgeで「 https://mail.google.com 」にアクセスしてみてください。

f:id:kaias1jp:20220404200403p:plain

※以下は本項の余談。Edge上ののGmailに表示されている画面をPWAのGmailアプリに飛ばすことはできます。
Edge上のGmailのアドレスバーの右側にこんなアイコンがあります。

f:id:kaias1jp:20220404201253p:plain
f:id:kaias1jp:20220404201306p:plain

このアイコンをクリックすると、PWAとしてGmailを登録しているならそれを選択するダイアログが表示されます。

f:id:kaias1jp:20220404201409p:plain

選択すると、PWAのGmailでメール作成画面になったりします。

f:id:kaias1jp:20220404201451p:plain

こういう仕組みがあるので、mailtoリンクから直接PWAのGmailを呼び出す方法は何かしらあるんではないかと思っていますが、まだそこまで調べていません。

さいごに

今回の記事は自己満足の世界です。「こういう方法もあるのかー」「やり方を他のPWAに流用できるのかな?」など何かの元ネタになればうれしいですね。