node.js pop3 smtp でググっても何も見つからなかったので、
作ってみよう・・・と云うことでベタなJavaScriptで、
POP3の110ポートを開いて、
Thunderbirdを相手に、打ってくるコマンドを見ながら、相槌を打つ!方式でチマチマと作っていった。
次に SMTPの25ポートも開いて、簡易なメールサーバになってきたものの・・・
ベタなJavaScriptだと、 CRLFが付いてないコマンドが来たり、いくつかに分けてwriteされるとマズそうな感じになったので、公表されているパッケージをもう一度探してみたら、サーバのパッケージには-serverを付けるのが習わしらしかった。
ではDOS窓から、
プロジェクトのフォルダで、node init でpackage.jsonを作り、
npm i –save pop3-server とか
npm i –save smtp-server とか
と・・・適当に打ったらちゃんとパッケージがアルじゃないか!(馬鹿 orz
pop3-serverのREADMEには、Look at the demo_server.js と書いてあった。jsを読んでみると、ほぼそのままパクればいいことが判った。
smtp-serverのREADMEには、See [smtp-server homepage]と書いてあった。こっちは、しっかりとした感じ。
ま、とりあえず、データベースは使わずに、両方のサンプルソースをマージして送受信するメールはmails変数で管理してPOP3のSMTPのコネクションが切れた時にjson形式でファイルに保存。コネクションが出来たら、jsonファイルをロードでいいような気がする。
ただ、そのままjson化すると、メールのタイトルや本文の日本語はJISコード化したものをBASE64にエンコードされてるから中身が読めないので、iconvで変換できないかなと思ったら、インストーラがnode-gypというpython使いで重いのでjconvというのがあるようなので、これでUTF8にしてJSON化した方が良さそうな気がする。
という訳で、外とは連携しないテスト用のメールサーバは簡単に作れそうだ。(※連携するのが、メンドクサイだけだけど・・・)但し、ココに配置するのはチト問題がありそうなので、家庭内サーバに配置しよう。