2022年1月6日木曜日

Thunderbirdのアドレス帳とGmail の連絡先(Google Contacts)の同期

Thunderbird 91から、Thunderbird本体でCardDAVに対応しました。ほんとは78.7.1からですが、内部的に作られただけでUIがありませんでした。(たぶん。見つけられてなかっただけかも?)

で、何がうれしいかというと、ThunderbirdとGmailの連絡先との同期がアドオンなしでできるようになります。Gmailの連絡先を経由してiPhone/AndroidスマホとThunderbirdでアドレス帳を共有することもできるはずです。(「はず」と書いたのは、私は試していないからです。やるときは、バックアップをとるなど気を付けてください。)

過去、同期アドオンを作っていたこともあり(といっても10年近く前ですが)、今でも復活させてくれという要望がくるほどの機能なのですが、あまり知られていないようなので、簡単にやり方を紹介します。

やり方は2つ。
  1. 新規にアカウントをセットアップする場合:
    ウィザードに従ってアカウントを設定していった最後の画面に「リンクしたサービスへの接続」という項目がでてくるので、そこで設定します。
  2. すでにメール設定はできているなどでアドレス帳のみ設定する場合:
    アドレス帳で、「ファイル→新規作成→CardDAVアドレス帳」から作成します。

これでわかる方は、これでこの記事は終了です。

以下、手順を書いていきます。Thunderbird 78を使っている場合は、Thunderbird 91にあげる必要があるので、使っているアドオン対応状況等もふまえて慎重に。

1. 新規にアカウントをセットアップする場合

メールの設定と合わせてアドレス帳の同期設定もするケースです。すでにアカウントを設定済み場合は、削除してからやる必要はありません。その場合は2のほうの手順を確認してください。

まず、アカウントのセットアップウィザードを立ち上げます。ハンバーガーメニュー(ツールバーの三本線のボタン)から、「新規作成→既存のメールアカウント」で開きます。Thunderbirdをインストールしたての場合など、プロファイルが空っぽの場合は、勝手にこの画面になります。
「あなたのお名前」はメールのFromのところに表示したい名前を入れます。メールアドレスとパスワードは、設定したいGmailのアドレスとパスワードを入れます。

入力が終わったら、続けるを押して次へ。

以下のように、Thunderbirdが自動でサーバ設定を検知してくれます。普通はこのまま完了でいけるはずです。デフォルトではIMAPの設定になっているので、POP3にしたい場合は、選択を変えてください。

完了を押すと、OAuth2認証が始まります。メールアドレス、パスワードを入力して認証してください。認証を通ると、以下のように、Thunderbirdがメールや連絡先にアクセスするよと言ってくるので、許可を押します。よく見るとGoogleカレンダーにもアクセスすると書かれています。連絡先だけじゃなくて、カレンダーも一緒に同期することもできます。
アクセス許可すると、Thunderbirdのウィザードに「アカウントの作成が完了しました」とでてきます。が、ここですぐに閉じないでください。閉じてしまった場合は、この次の手順2のやりかたで設定してください。
下のほうに、「リンクしたサービスへの接続」というところがあり、「Thunderbirdがメールアカウントにリンクされたアドレス帳を1冊見つけました」というメッセージがあると思います。メッセージ横の矢印ボタンを押すと、上の画像のように「接続」ボタンが出てくるのでこれを押します。これで、アドレス帳が同期されます。

ちなみに、カレンダーも同様の項目があるので、同じように接続を押すとGoogleカレンダーも同期されます。

ここまできたら、「2.アドレス帳のみ設定する場合」は読み飛ばして、「同期設定が終わったら」へ進んでください。

2. アドレス帳のみ設定する場合

メールは設定済みの場合など、アドレス帳のみ設定するケースです。

まずは、アドレス帳ウィンドウを開きます。で、アドレス帳ウィンドウで、「ファイル→新規作成→CardDAVアドレス帳」を開きます。

ダイアログが開くので、以下のように設定します。
  • ユーザ名:Gmailのメールアドレス
  • 場所:https://www.googleapis.com/carddav/v1/principals/userEmail/lists/default
※場所のuserEmailのところは、Gmailのメールアドレスに変えてください。
 メールアドレスがsample@gmail.comの場合は、
 https://www.googleapis.com/carddav/v1/principals/sample@gmail.com/lists/default
 になります。

次へを押すと、OAuth2認証が始まります。メールアドレス、パスワードを入力して認証してください。すると、以下のように、Thunderbirdが連絡先にアクセスするけどいいか?と聞いてくるので許可を押します。

許可すると、ダイアログに「利用可能なアドレス帳」というのが出てきます。「Address Book」にチェックが入ったままで次へを押すと完了です。チェックを外してしまうとアドレス帳ができないのでご注意を。

同期設定が終わったら

手順1または2で同期設定をしたら、アドレス帳ウィンドウを開いてみてください。「Address Book」というアドレス帳ができていると思います。

「Address Book」上で「右クリック→プロパティ」を開いてください。アドレス帳の名前や同期間隔を設定できます。CardDAV URLのところはいじらないように。
「Address Book」という名前は、別のアカウントを追加した場合も、同じ名前になってしまい(Address Bookというアドレス帳が2個できる)、紛らわしいので変えるのをおすすめします。同期間隔は、頻繁にアドレス帳を編集することはないと思うので、デフォルトの30分ごとで十分ではないかなと思います。今すぐ同期したいときには、右クリックメニューに「サーバと同期」というのがあるので、ここからできます。

以上で設定は終わりです。

最後に

今回、CardDAVというプロトコルを使用しているので、すべての項目が同期されるわけではないのでご注意ください。例えば、Google連絡先のラベルはThunderbirdから見ることはできません。何が同期されるのか、私も全部確認はしていませんが、できないものはしょうがないと割り切るしかないです。

どうしてもやりたい場合は、People API(旧Contacts API)を使ってアドオンを作る必要がありますが、なかなかに大変なので、そういったアドオンが今後でてくることはあまり期待できないかなと思います。Thunderbird 68までは、gContactSyncが頑張ってくれていましたが、Thunderbird 78対応で力尽きてしまったようですし。

私の過去のアドオンGoogle Contactsを動かしたくてたどり着いた方もいるかと思いますが、このCardDAVでの同期でカンベンしてください。自分用だったらいいんですが、いろんな使われ方をして、あれができない、データ壊れたとかいっぱいきちゃうんですよね…。gContactSyncの作者さんは、こんな低レベルな話じゃなくて単純に時間がとれてないだけみたいですけど。

2022年1月5日水曜日

Check and Sendの送信遅延オプション

Check and Send 2.1.1に、指定時間待ってから送信するオプションを追加しました。送信ボタンをおしてから、「あ…」となったときにキャンセルできるようにする機能です。

Check and Send 2.1.1


設定

デフォルトでは無効になっているので、まず設定をしてください。
Check and Sendのオプションの真ん中あたりに「送信遅延」というところがあるので、ここで待つ時間を指定してください。単位は秒です。

その下のチェックボックスは、アドレスチェックでヒットした場合のみ待機させるオプションです。ヒットしなかった場合は、すぐに送信してしまいます。「宛先のアドレス」のところで、社外のメールアドレスにヒットするようにしておいて、社内宛だったら待たない、社外宛だったら待つみたいな使い方を想定しています。

この後で紹介しますが、この機能はツールバーボタンに残り時間を表示します。そのため、ツールバーボタンを置いていないと正しく動作しないのでご注意ください。


設定がだいぶごちゃごちゃしてきてしまったので、整理必要ですね…

使い方

メールを作成して送信すると、これまで同様にポップアップがでてきます。ここで「続ける」を押すと、送信が保留されツールバーボタンに赤色のバッジで残り時間が表示されます。これがゼロになるとメールが送信されます。

送信キャンセルをしたい場合は、「チェック」ボタンを押すと、以下のようなポップアップが出るので、ここでキャンセルを押してください。「続ける」を押した場合は、カウントダウンを継続します。ポップアップ表示中もカウントはされているので、キャンセルを押す前にタイムアップするとメール送信してしまうのでご注意を。


チェックボタンがへこんだままになってしまうケースがあるのですが、このときにチェックボタンを押しても空振りしてしまうので、もう一度押してください。Thunderbird 91から起きているようで、回避策を検討していますが、苦戦中です…

また、送信待機中にメール作成ウィンドウを閉じてしまうと、送信キャンセルされ、作成したメールごと失ってしまうのでご注意ください。邪魔だと思いますが、ウィンドウはそのままにしてください。


久しぶりに少し時間がとれたので、要望が非常に多かった機能を入れてみました。実際、これで救われるケースってあんまりないとは思いますが、保険って感じですかね。

本当は、送信トレイに退避して時間が来たら送信するなど、もう少しいいやり方をしたかったんですが、現状のアドオンのフレームワークで思いつくのはこのような実装でした。思ってたのと違うって方もいると思いますが、使ってみていただいて、こんな風にしてみたらとかコメントいただけるとうれしいです。

人気の投稿(過去7日間)