USBで繋いだ状態からケーブルを抜いたときや、無線LANカードを抜いたときに突然消えてしまう件の続きです。しばらく全部本体メモリに入れて運用していたのですが、頻度は減ったもののやはり突然消えることがあります。そこで調べてみたところ、普通に終了していました。つまり、クラッシュしたとかいうわけではなくて、OS側がメッセージを送ってきて終了しているようです。
エクスプローラでSDカードを開いているときに、SDカードを抜くとエクスプローラが閉じますが、あれと同じようなもののようです。なんだかメッセージの送り先を間違っている気がしますけど。
-gを実装しました。後は、-sを実装したらとりあえずコマンドラインオプションは終了です。他のオプションは要望が出たときに考えるということで。Wikiのドキュメントも更新しなくてはいけませんね。
今は本文やヘッダをキャッシュしていない場合、Content-Typeはどこにもキャッシュされていませんが、キャッシュするようにしないとだめな気がしています。
S/MIMEでmultipart/signed形式の署名を確認する際には、オリジナルのバイト列を取得する必要がありますが、通常IMAP4でmultipartの場合にはBODYSTRUCTUREを使って組み立てるのでバイト列が全く同じに取れるわけではありません。ということは、multipart/signedの場合にはBODY[]で取る必要があるわけです。そのためにはリクエストを出す前にmultipart/signedであることを知っている必要があるわけで、結局最初に同期したときにキャッシュしておく必要があるわけです。ということで、cache.boxにFromやSubjectなどと同じように保存することになるかもしれません。