ただのメール転送アプリ書いてたら日がくれて途方にくれた

○ OnlineSSL

あんまり本気サービスではおすすめしないのだけど、実験レベルであればOnlineSSLの証明書は便利だという気がする。

なんで本気サービスでは勧めないのかというとPKI的に最近よくないことが増えているから ()、だそうだ。あんまり詳しくないのでかっこよさげに説明したりしない。手抜きっぽいところはやはり手抜きっぽい運用してそうじゃね、という話なんだろうか。よく分からん

でもまぁ自分のwebサイトくらいいーじゃん、という話になり、申しこもうかと考えた。

○ しかし、ちょびっとだけめんどくさいのだ

仕事上で上から証明書を作ってもらう、というのを何度かやったのだが、若干面倒なのは「admin@そのドメイン」というメアド宛に送られるリンクをクリックして承認する、という部分。

本気認証局だとここで郵送とか下手すりゃ面談とかいうのがあるらしいんでそれよりはマシなんだけど、いちいちdovecotの設定を一時的にするとかめんどい。

酷い時はMaildir の中身をlessで見て回ってリンクを探すみたいなレベルで対応してたのだが、どうにかしろよという気分になってきていた。

○ そうだ、転送アプリを書こう

で、何度も言うけど本気サービスではともかく、実験で今後も使う可能性が多いので、練習もかねて転送アプリをPythonで書こう、という気分になった。

理想的には、上の確認メールが来る時だけサーバを立ち上げて自分のメアドに転送させる「だけ」をやらせたい。その間スパムが自分のボックスに飛んでくる、という可能性もあるんだけど、普段そもそも開けるつもりのない25番ポートに一晩でどんだけアタックがくるのかというと多分来ないだろー、という適当な考え。適当である。

セキュリティ面は置いておき、基本的にはおそらく「面倒なだけ」という確信があった。smtplibとか色々あるけん

○ Greylisting ぐぬぬ

おのれスパム対策……

http://en.wikipedia.org/wiki/Greylisting

自分が使おうとした転送先のSMTPサーバが見事にこれをやっており、だから時間を置いて再送しなければならない。めんどくせー

threading.Timer でお茶濁したが、今度はそのTimerが存在しているときにサーバ落としたらTimerもきっちり殺すとか色々どうでもよいことをやることになる。

# 本当に回避したいだけならwhitelistに入れるとか、手で一度再送するとかやってもいいわけだが

○ multipart ぐぬぬ

転送実験で使ったメールソフトの一つがGMailで、GMailはmultipartを使い、だから転送時にMIMEをパースしたりするときにめんどくなった

○ charset ぐぬぬ

これまた面倒。難しいんじゃない。面倒。

GMailはISO-2022-JPだし他のとあるメールソフトはUTF-8だし、Quoted Printable云々とかあるしうぐー!

○ そもそも メール ぐぬぬ

そもそもの大問題としてこういう本でも明らかな通りこの辺りは全方位に地雷があるわけで、適当に転送すりゃいーやー、と思って書きだした自分を責めたくなってきてしまった。正直インターネットスタンダード的に正しく書ける気がしない。特に一日ではとてもではないがまともな転送アプリは書ける気がしない。

確かに面倒であるが、予想よりはるかに面倒なんであった。

○ テストぐぬぬ

ふと「このコードのテストって」とか考えだして気分が悪くなった。モックアウトの嵐である。そもそも背景の仕様がわかってねーじょうたいのユニットテストとか壮大に悲しい。けてすた


○ まとめ

めんどくさい。

このブログの人気の投稿

WiiUのコントローラが通信不良に陥った話

LibreOfficeで表紙、目次、本体でフッターのページ番号のスタイルを変える

技術書典2 あ-03 『もわねっとのPythonの本』