2018/08/27

Mail.app の「セキュリティ保護されていない認証を許可」チェックボックスを有効にするアプリを作りました

macOS High Sierra(少なくとも 10.13.6 まで)は、Mail.app に小さなバグがあります。

そのバグは、

  1. Mail.app 「環境設定」の
  2. 「アカウントタブ」から
  3. 「IMAPの詳細設定」へ入り
  4. 「セキュリティ保護されていない認証を許可」のチェックボックスを有効にした後
  5. 「OK」を押しても
  6. 「セキュリティ保護されていない認証を許可」の設定が反映されない

というものです。

Mail.app はユーザ名やパスワードなどを変更すると、その設定が正しいかどうかをサーバへ問い合わせて検証を行い、正常な接続を確認できた場合にのみ、設定を保存する仕組みになっています。

そのため、「セキュリティ保護されていない認証を許可」の設定が反映されない場合、SSL の有効になっていないメイルサーバへの設定変更は検証が成功しないため、保存ができない、ということになってしまいます。

多くの IMAP サーバは SSL に対応していると思われるので、このバグで悩む人は少ないとは思いますが、私が私的に使っているIMAP サーバは SSL 非対応のため、非常に困ってしまいました。

そこで Mail.app が使っている ~/Library/Accounts/Accounts4.sqlite を直接操作するアプリ「Accounts4Fixer」を作成しました。v1.0.0 の Release バイナリも作成してあります。

内容は単純で、直接データベースの当該要素を変更してるだけです。Mail.app は CoreData を使ってデータベースアクセスをしているようですが、このアプリでは SQLite ライブラリを使って直接データベースを書き換えています。

アカウントに関するデータベースを変更する都合上、変更が  失敗した場合、最悪 macOS へログインすらできなくなってしまうかもしれません。その点をよく理解頂いた上で、自己責任でご利用ください(事前にバックアップを作成することをお薦めします)。

なお、この Mail.app のバグは、macOS Mojave では直っているようです。例年通りであれば、恐らく一ヶ月程度で Mojave がリリースされると思われるので、もしそれまで待てるのであれば、また、Mojave へアップデートする予定であれば、Mojave リリースを待つのも良い案だと思います。