メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバは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の反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

さくらサーバでLynxが…

自動化するのにPerlを検討

ある案件で、あるサイトのフォームへ手入力しているものを、自動化するという処理を構築することに。

当初、メールでデータを流しこみ、Perlで解析し、POSTする方法を検討。

ところが、何度もページを遷移したあとで入力フォームにたどり着くのだけれど、SSLなページが、LWPではどうも上手くいかない。

まあWebブラウザを作るのと同じような内容になってしまうので、面倒すぎる。
どうもHiddenでデータ渡しているし、セッションを使っているのでCookieまわりの処理とかがダメっぽい。ひょっとするとReferer等も見ている感じ

ふ〜む、そうだ! WWW::Mechanizeを使おうと考えた。データを作るのに手入力はやっていられないので、HTTP::RecorderでProxyさせて、記録することに。
でもSSL通すと記録してくれない…。

はぁ…。

テキストブラウザLynxが使えないレベル

ならば、いっその事テキストブラウザを制御する方向で検討。
メールで受けて、解析し、テキストブラウザをスクリプトで動作させる。
スクリプトには解析した内容から、フォームに入力させるようにPerlで生成する。

よし。これならOKそう。

まずは手元のUbuntu上で簡単な動作確認を行う。
Lynxには、マニュアルに載っていないコマンドラインオプションがあって、
$ lynx -cmd_log ファイル名
とすると、操作を記録してくれる。
この記録されたファイルを編集してやれば思い通りに動かせるはず。

実行するには、
$ lynx -cmd_script ファイル名
でOKだ。

実際には、
lynx -cmd_script log.txt -accept_all_cookies URL
なんて指示してやる。

どうやら、日本語もちょっとうまく処理してやるとフォームに流し込めることが判明。
SSLもモジュールさえ入っていれば動作するのを確認。

本番環境の調査

お客さんの借りているのが「さくらのレンタルサーバ スタンダード」。契約内容からSSHがOK。Lynxも入っている。PerlもOK。

ここまでは、事前の調査で分かっているので、最低限の動作確認をする。

SSHでログインして、Lynxを手動で起動して、ページを叩いてみる。(ちなみにwww.google.co.jp)

オプションで、コードをEUC-JPにしても、Shift-JISにしてもUTF-8にしても、化けまくる…。

ぐぐってみて、.lynxrcに何を書いても正しく表示されない。

まあ、それなら、それで文字コードさえフォームに流し込めれば、化けようがなにしようが…。と思い、httpsも試す。

「Alert!: This client does not contain support for HTTPS URLs.」
とな…。

なんてこった。lynxは入っているがSSLのモジュールは入っていない。

ここで詰みました。
さくらサーバでは、実行不可ということが判明。

これをさくら側に要望して、すぐ入れてくれるとも思えないし…。

別の方法を探さなければなりませぬ…。


コメント

このブログの人気の投稿

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

VirtualBoxでUSBから起動

Virtualboxとnvidiaドライバ