【Node.js】で、メールサーバでも作ろうか・・・

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化した方が良さそうな気がする。

という訳で、外とは連携しないテスト用のメールサーバは簡単に作れそうだ。(※連携するのが、メンドクサイだけだけど・・・)但し、ココに配置するのはチト問題がありそうなので、家庭内サーバに配置しよう。




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA