メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバはVPS上に構築していた。 ・Ubuntu Server ・Postfix ・Dovecot ・spamAssassinと、BlackListの利用 Spam対策を行ってきたし、サーバ上でメールをトリガーにして各種プログラムを動かしたりしてきた。 メールサーバのメンテナンスは結構面倒くさくて、  ・Disk容量のチェック  ・不正アクセスのチェック  ・各種セキュリティパッチの適用 など、手間がかかる。 そこで、外部のサーバを利用することに…。 結構安くて使い勝手の良さそうなのが、「さくらのメールボックス」 3年契約で、3070円とな…。  メールアドレスは自分のだけなので、20GBまで利用可能!  (Gmailより大きいねぇ) ということで、早速契約。 アカウント設定を行って、既存のDNSを書き換える。WHOISも書き換えて完了。 SMTPとIMAPが利用できればOK。 ちょうど、GoogleがSPF設定していないと受信しないし、DKIMおよびDMARCに対応していないメールを弾くようになったので、対応しているのを確認。 さくらサーバ自体は、これまでお客さんのサーバとして何件も利用しているので、利用方法も難しくはない。  Webメールにも対応しているので、いざという場合にもありがたい。 ということで、各メールソフトの設定を変更。  PC(常時使用する3台)とタブレット、スマートフォンと台数は多いがそれ程手間はかからない。 問題は、旧サーバで送受信したメールの履歴だけれど、これはThunderbrdを使ってローカルに保存することで回避。  本当は、サーバtoサーバでMailboxに残そうとも考えたんだけど、古いメールはそれ程必要ないし、ローカルにバックアップしてあれば凌げるので、良しとする。 移行時にDNSの反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

PerlでMIME処理

いろいろとCPANで遊んでいて

PerlでMIMEの処理をさせようと、モジュールをインストールして試してみる。
今まで、自前処理で行うことが多かったので、勉強がてら検索&TRY。

メール解析には「MIME::Parser」が便利そう。
ということで、入れてみる。
$ sudo perl -MCPAN -e shell
cpan[1]> install MIME::Parser
たったこれだけで、入るんだから楽なもんだ。
my $parse=MIME::Parser->new();
my $message = $parse->parse(*STDIN);
my $head = $message->head(); 
なんて処理を書いて、マルチパートなデータを食わせて、いろいろとテストしていたら、読み込んだメールデータをパースするたびに、ファイルを生成してくれる…。
txtとhtmlがわさわさと増えているじゃないか…。

つうことで、何かオプションが有るはずと思いつつ、探してみる。
MIME::Parser インスタンス設定 output_to_core」なんて記録を見つけた。

1をセットすると、parseデータをメモリ上に保持する。デフォルトでは解析結果のうちbody部(本文やマルチパートの添付ファイル)は即時ディスクに書き出し。
(perldoc では、巨大ファイルが添付された場合などでちょっとriskyとさ)
ということらしいので、セットしてテストしてみる。
$parse->output_to_core(1);
$parse->tmp_to_core(1);
$parse->tmp_recycling(1);
$parse->use_inner_files(1);
こんな感じで、書いておけば、オンメモリで作業してくれるらしい。
昔、メモリが少ない時の実装なんだろうな…なんて思いながら、現在の大量にメモリが使える時代に感謝!!

で、output_to_core(1)をセットして、テストすると作業ファイル等全く作らなくなった。

まあ、どでかいメールを食わせる予定はないので、メモリで処理してくれた方がありがたい。ファイルがディスクを食いつぶす心配もいらないし、消す作業も必要ない。

ただ、記述にあるように巨大な添付ファイルだけは注意しておこうと、今は思うけど、すぐ忘れそうなのでココに書くわけですww

CPANってやっぱりすごいな

と本当に思います。
車輪の再発明をしないということが、どれだけ素敵なことか…。

ただ、登録されているモジュールなんか多すぎて、探しきれなかったり、古かったり、使い方のわからないものも多いので、ある意味面倒なんだよね〜

なので、Amazonでちょこっと検索してみたら、「Perl CPAN モジュールガイド」なんてのが出ていたので、ポチりました。


さて、もう少しPerl遊びをしよ〜っとww


コメント

  1. もしかして
    my $filer=$parser->filer;
    $filer->purge();

    とか?

    返信削除

コメントを投稿

励みになりますので、簡単で良いので一言くださいませ。

このブログの人気の投稿

WPS Officeで日本語入力ができない

VirtualBoxでUSBから起動

Virtualboxとnvidiaドライバ