NTT docomoのキャリアメールであるドコモメールを、フォルダごとすべてGMailへ吸い出します。
GMailはIMAPでメールを投入してもスマホに新着通知を送ってくれないので、以下2種類の通知を実装しています。 どちらもオプションで、設定がなければ行いません。
- Outlook.com に転送して、Androidアプリに通知を飛ばしてもらう。
- Slackのincoming webhookを叩く
Outlook.comのAndroidアプリは新着通知がなぜかINBOXフォルダ(受信トレイ)しか飛ばないので、 ドコモメール側でどのフォルダに振り分けていてもOutlook.comのメールアカウントでは受信トレイに転送されます。
Python3.5以上で動くはずです。requirements.txt
を参考にパッケージを入れてください。
systemdで動かす際のServiceとTimerのUnit fileを参考までに添付してあります。
stateがない初回起動時にメールを全て転送したい場合は引数 -i
をつけてください。
このときSlack通知が有効になっていると全部通知を飛ばそうとしてしまうので要注意。
Google CloudのAPIコンソールでGmail APIを有効にしたClientを作るとClient ID/Secretが発行されます。
これをconfig.ini
に書いて(refresh_token
がない状態)で起動すると、OAuth2認可フローのURIを表示します。アクセスしたいGmailにログインしたブラウザで
当該URIを開くと認可してくれ画面が出ます。認可するとhttps://localhost/
に繋ぎに行こうとするのでその時点でのブラウザのURIを貼り付けてください。
うまくいけばrefresh_token
を取得して表示するので、config.ini
に転記してください。
コンテナでは設定ファイルが/conf/config.ini
に存在し、状態ファイルを/state/laststate.json
に書きこめると期待して起動します。
docker run -it --mount type=bind,source="$(pwd)"/conf,target=/conf,readonly --mount type=bind,source="$(pwd)"/state,target=/state ghcr.io/walkure/dgmtx:latest
GMailのIMAP接続は普通のUSER/PASS
ではログインできず、OAUTHBEARERを使う必要があります。
そのため、事前にGoogle Cloud PlatformでOAuth2.0認証情報を取得しておいてください。
cf. OAuth2.0を使用してGoogleAPIにアクセスする
終了時に、次回起動に備えて状態ファイルを保存します。ここにはドコモメールIMAPフォルダを何処まで読んだかの情報と、GMailへのアクセストークンが入っています。
ドコモメールをSIMフリースマホで使う - (。・ω・。)ノ・☆':;':
walkure at 3pf.jp
MIT