この記事は KMC アドベントカレンダー 19 日目の記事です。
背景
世界にはたくさんの不便・だるい・面倒があり、われわれ人類は様々な道具を作り使うことで不便・だるい・面倒を粉砕してソシャゲ周回する時間を捻出したり異常な旅程の旅行に出ています。
この記事は KMC アドベントカレンダー 19 日目の記事です。
世界にはたくさんの不便・だるい・面倒があり、われわれ人類は様々な道具を作り使うことで不便・だるい・面倒を粉砕してソシャゲ周回する時間を捻出したり異常な旅程の旅行に出ています。
この記事は川見てる Advent Calendar 2021およびMoney Forward Engineering Advent Calendar 2021 17日の記事です。
マネーフォワードでことし10月から京都や鴨川🦆の良さを社内にひたすら宣伝しながらGoやYAMLなどを書いているwalkureです。
入社時の部署自己紹介で「趣味は鴨川🦆です」と言ったりSlackの分報へ鴨川🦆の写真をひたすら貼り続けていたところ、カモグルイ*1とか呼ばれるようになりました。
殆どの仲間は東京にいるので、あづまの地に鴨川🦆の良さを広めるべくこれからも尽力してまいります。
*1:実際晴れた週末は結構な頻度で鴨川🦆河川敷に行って一日ひなたぼっこしてるので反論の余地が一切ない。
KMCのSlackには#everythingという「全public channelの人間による発言を表示する」というパワフルなチャンネルがあります。
全ての発言を一つのチャンネルに集約する#everything チャンネルを作ったけどTwitterタイムラインみたいになった
— むらため𒄆✘˵╹◡╹˶✘ (@paradigm_9) 2019年6月5日
会社のSlackにもこれが欲しいなぁと思ったので、Event APIをSocket modeで拾うbotをGoでシュッと作ってみた*1。
問題は会社のSlackが4000チャンネルぐらいあるのでアクティブ時間帯にはchat.postMessageのrate Limit(1秒ごと)を即座に突き抜けそう*2なこと。全部見るとか無理っぽいです。どうしよ*3。
分報だけ集約するのが良さそうな気がする、どうやって判別しようか。
いっそ自分がjoinしてるchannelだけ拾うという案もある。
ドコモ謹製SIMフリー端末向けドコモメールアプリがあるけど、ストア評価*1は驚異の☆2。
ドコモSIM回線で繋ぎGoogle Play Storeのキャッシュを消したらインストールは出来たけどdアカウント認証が通らない。
なんやこれ。
www.nttdocomo.co.jp
ドコモメールはIMAP対応しているので、適当なMUA見繕えば送受信はできる。
GMailアプリもIMAP MUA機能があるけど何故か必ずHTMLメールで送るので宛先がiPhoneのMMSメールだと相手に「Attachment.html」という表示しか出ない。
いかんでしょ。
色々探して調べた結果、K-9 Mailでテキストメールを送ることが出来た。
k9mail.app
この状態だと、メーラがポーリングしないと新着メールが取れない。ポーリングしてるとスマホの電池がゴリゴリ減るので、何らかのプッシュ通知を考える必要がある。
また、昔からキャリアメールをGMailへ転送してバックアップしてる*2ので、これも引き続き必要。
ぐぐるとfetchmailでやる方法がいくつかヒットしましたが、ドコモメール上でフォルダ分けしてるとそのままでは動かない。
ドコモメールでフォルダを作るとIMAPサーバ上に対応するメールボックスが出来て分類されますが、IMAPでメールボックスが複数存在していると面倒が溢れることがわかった。
設定側で対象フォルダを意識すると必ず事故る*4ので、勝手にフォルダを認識してくれないと困る。
仕方ないので自分でサーバ上のメールボックスなめる実装を書くことにしました。
GMailがIMAPでのメール追加時に通知を出してくれたら良いんですけど出ない。
新着メール通知表示ごときでAndroidアプリ作りたくないので、既存のものを組み合わせてやる方向で考えた。
試してみたけど、スマホゲームのようなCPUもりもり食べるアプリを起動するとブラウザタスクが殺されるのかService Workerが死んで通知が出なくなるのでやめた。
安全牌なので作ったけど、安全すぎて面白くない。
Python使って、ドコモメールの全フォルダ(全部と言ってもゴミ箱とかは除く)からGMailとOutlook.comにメールを転送してSlackに通知を投げるスクリプトを書いた。
github.com
適当なサーバでcronないしsystemd-timerにより定期的に実行されるイメージ。
キャリアメールさっさと捨てたいねぇという気持ちを強くして終わる。