ドコモ謹製SIMフリー端末向けドコモメールアプリがあるけど、ストア評価*1は驚異の☆2。
ドコモSIM回線で繋ぎGoogle Play Storeのキャッシュを消したらインストールは出来たけどdアカウント認証が通らない。
なんやこれ。
IMAPで送受信
www.nttdocomo.co.jp
ドコモメールはIMAP対応しているので、適当なMUA見繕えば送受信はできる。
GMailアプリもIMAP MUA機能があるけど何故か必ずHTMLメールで送るので宛先がiPhoneのMMSメールだと相手に「Attachment.html」という表示しか出ない。
いかんでしょ。
色々探して調べた結果、K-9 Mailでテキストメールを送ることが出来た。
k9mail.app
バックアップと新着通知がほしいしフォルダ分類をよしなにしてほしい
この状態だと、メーラがポーリングしないと新着メールが取れない。ポーリングしてるとスマホの電池がゴリゴリ減るので、何らかのプッシュ通知を考える必要がある。
また、昔からキャリアメールをGMailへ転送してバックアップしてる*2ので、これも引き続き必要。
ぐぐるとfetchmailでやる方法がいくつかヒットしましたが、ドコモメール上でフォルダ分けしてるとそのままでは動かない。
ドコモメールでフォルダを作るとIMAPサーバ上に対応するメールボックスが出来て分類されますが、IMAPでメールボックスが複数存在していると面倒が溢れることがわかった。
- IMAPメールサーバのlong pollingであるIDLEはメールボックス単位*3
- fetchmailもメールボックス単位で設定を書く必要がある
- GMailアプリはINBOX(受信トレイ)しかポーリングしてくれないので、分類されたメールはわからない。
設定側で対象フォルダを意識すると必ず事故る*4ので、勝手にフォルダを認識してくれないと困る。
仕方ないので自分でサーバ上のメールボックスなめる実装を書くことにしました。
通知をどのように送るか
GMailがIMAPでのメール追加時に通知を出してくれたら良いんですけど出ない。
新着メール通知表示ごときでAndroidアプリ作りたくないので、既存のものを組み合わせてやる方向で考えた。
Web Push/Notification
試してみたけど、スマホゲームのようなCPUもりもり食べるアプリを起動するとブラウザタスクが殺されるのかService Workerが死んで通知が出なくなるのでやめた。
Slack
安全牌なので作ったけど、安全すぎて面白くない。
つくったもの
Python使って、ドコモメールの全フォルダ(全部と言ってもゴミ箱とかは除く)からGMailとOutlook.comにメールを転送してSlackに通知を投げるスクリプトを書いた。
github.com
適当なサーバでcronないしsystemd-timerにより定期的に実行されるイメージ。
キャリアメールさっさと捨てたいねぇという気持ちを強くして終わる。