Proton MailでOSSのメールブリッジを使うことで無料アカウントでもIMAP/SMTPが利用できたのでメモしておきます.
ProtonMailというスイスの会社のメールサービスがあります.コードはOSSで公開されており,自動的にPGP鍵を作成してE2EEを使えたりします.
現在はオンラインストレージ,VPN,カレンダー,パスワードマネージャーなどのサービスも開始しています.無料でも使えますし,脱gmailな向きには勧めやすいサービスです.
しかし,無料ではIMAP/SMTPが利用できないため好みのMUAが利用できずウェブインターフェイスしか利用できません.€4.99よりの有料プランにアップグレードすることでProton Mail Bridgeというプログラムを利用してIMAP/SMTPが利用できるようになり,好みのMUAが使えるようになります.
Email client support (via IMAP/SMTP) Proton Mail supports desktop clients such as Outlook, Apple Mail, Thunderbird, etc. via Proton Mail Bridge.
無料アカウントでProton Mail Bridgeを試すとアップグレードを勧められて使えません.
hydroxideを使う
hydroxideはGo製MITライセンスのProton bridgeです.IMAP/SMTPの他にCardDAVにも対応しています.
Proton Mail Bridgeと違い,GUIは提供されていません.
hydroxideのインストール
$ git clone https://github.com/emersion/hydroxide.git (1) $ cd hydroxide $ go build ./cmd/hydroxide (2) $ install ./hydroxide ~/bin/ (3) $ which hydroxide /home/matoken/bin/hydroxide
-
sourceのclone
-
build
-
好みの場所にインストール
$ hydroxide --help usage: hydroxide [options...] <command> Commands: auth <username> Login to ProtonMail via hydroxide carddav Run hydroxide as a CardDAV server export-secret-keys <username> Export secret keys imap Run hydroxide as an IMAP server import-messages <username> [file] Import messages export-messages [options...] <username> Export messages sendmail <username> -- <args...> sendmail(1) interface serve Run all servers smtp Run hydroxide as an SMTP server status View hydroxide status Global options: -debug Enable debug logs -api-endpoint <url> ProtonMail API endpoint -app-version <version> ProtonMail application version -smtp-host example.com Allowed SMTP email hostname on which hydroxide listens, defaults to 127.0.0.1 -imap-host example.com Allowed IMAP email hostname on which hydroxide listens, defaults to 127.0.0.1 -carddav-host example.com Allowed SMTP email hostname on which hydroxide listens, defaults to 127.0.0.1 -smtp-port example.com SMTP port on which hydroxide listens, defaults to 1025 -imap-port example.com IMAP port on which hydroxide listens, defaults to 1143 -carddav-port example.com CardDAV port on which hydroxide listens, defaults to 8080 -disable-imap Disable IMAP for hydroxide serve -disable-smtp Disable SMTP for hydroxide serve -disable-carddav Disable CardDAV for hydroxide serve -tls-cert /path/to/cert.pem Path to the certificate to use for incoming connections (Optional) -tls-key /path/to/key.pem Path to the certificate key to use for incoming connections (Optional) -tls-client-ca /path/to/ca.pem If set, clients must provide a certificate signed by the given CA (Optional) Environment variables: HYDROXIDE_BRIDGE_PASS Don't prompt for the bridge password, use this variable instead
認証
authオプションでProton Mailとhydroxideの間での認証と,hydroxideとMUAの間で使うパスワードの生成を行います.
Proton Mailとの認証後に表示されるブリッジパスワードはMUAとの認証に使います.保存しておきましょう.
$ hydroxide auth <username>
認証情報は ~/.config/hydroxide/
以下のファイルに保存されます.
hydroxideの起動
-
SMTP
smtpオプションでSMTPのブリッジが起動します.
$ hydroxide smtp
- port
-
1025
- セキュリティ
-
なし
- user
-
Proton Mailと同じ
- password
-
authオプションで表示されたブリッジパスワード
-
CardDav
-
carddavオプションでCardCadのブリッジが起動します.httpsリバースプロキシを起動して利用するようですが未検証.
$ hydroxide carddav
-
IMAP
imapオプションでIMAPのブリッジが起動します.
$ hydroxide imap
- port
-
1143
- セキュリティ
-
なし
- user
-
Proton Mailと同じ
- password
-
authオプションで表示されたブリッジパスワード
Warning
|
IMAPのサポートは進行中らいいです.とりあえず数時間使った程度だと普通に使えていそうです. |
-
serveオプションで複数のサービスの起動
hydroxideを複数起動しないようにとの注意がREADME.mdにあります.複数のサービスを起動したい場合はserveオプションで全てのサービス(SMTP, CardDav, IMAP)が起動します.
$ hydroxide serve
3つのサービスのうち2つだけを起動したい場合はserveオプションの他に-disable-サービス名のオプションを指定します.以下はCardDavを無効にしてSMTPとIMAPが起動します.
$ hydroxide -disable-carddav serve
MUAの設定
hydroxideを起動した状態で好みのMUAに設定を行います.
TLSなどには非対応なので注意.
あとは普通に利用できます.
Proton Mailに作られたたものではない自分のPGP鍵を使うこともできます :)
hydroxideの自動起動とアクセス制限
はじめRaspberry Piでhydroxideを起動してLaptopのMUAから繋ごうと思っていましたが,既定値ではTLSが利用されず通信が平文で行われるのでリモートで動かすのはやめてlocalhostで動かすことにしました.
MUAでメールを送受信するときにはhydroxideが起動している必要があります.
デスクトップ環境の自動起動機能や,crontabの@rebootなどやMUAの起動scriptに加えたりすると良さそうです.
そしてそのままだとリモートから繋ぐこともできるのでlocalhostからしか受け付けないようnftableなどで制限を掛けたほうが良さそうです.
おわりに
ということでhydroxideを利用し,無料アカウントでProton MailのIMAP/SMTPを使えるようにして自分好みのMUAを利用できるようになりました.これでウェブブラウザを起動しなくてもメールの送受信ができたり自分の作成したPGP鍵を利用できます.
ただ,hydroxideもProtonのAPIを叩いているようなのでProton BrisgeのようにProton側で無料アカウントに対してアクセス制限をするようになると使えなくなると思います.そのためいつまで利用できるかわからない方法です.それが嫌なら有料アカウントにアップグレードするか別のサービスを使うしかなさそうです.
環境
c964219ad4996d90b34d730b98a8c736b9bc9921 (HEAD -> master, tag: v0.2.29, origin/master, origin/HEAD) Support BODY and TEXT in search
$ dpkg-query -W golang golang:amd64 2:1.23~2 $ lsb_release -dr Description: Debian GNU/Linux trixie/sid Release: n/a $ arch x86_64
$ git log --pretty=oneline -1 c964219ad4996d90b34d730b98a8c736b9bc9921 (HEAD -> master, tag: v0.2.29, origin/master, origin/HEAD) Support BODY and TEXT in search $ dpkg-query -W golang golang:armhf 2:1.19~1 $ lsb_release -dr No LSB modules are available. Description: Raspbian GNU/Linux 12 (bookworm) Release: 12 $ arch armv7l