にゃごにゃ小学校

本家(HP)作製のネタ、あるいは記事にするには寸足らずな話を日記兼用でアップします。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

 数年前に来ていたイギリスからのインターン生が研修中に作成した社内ウェブアプリシステムについて、これまで社内のメールサーバに送信していた通知メールを、外部のSMTPサーバに対して送信するよう変更する必要性が生じて来た。要するに、ウェブアプリのサーバ機で、localhostのメールサーバ宛に送信していたメールを、グローバルIPを持つインターネット上のメールサーバに出すようにするわけだ。

 これまでも不具合や仕様の拡張、改修などで、このシステムの面倒を見てきたが、メール関係をいじるのは今回が初めて。

 最初は横着こいて、ネットで直接その方法に関する答えを探してみたが、それなりに情報は集まるものの、どうも信頼性に欠ける。あるいは微妙に外していて、肝心のことが不明確。この程度のこと、なんで情報がきっちりまとまってないんだろう。
 急がば回れ、こうした場合、得てして、正攻法の情報収集が効を奏することが多い。要するに、正規のドキュメントをちゃんと調べるということなのだが、こうしたやり方は、目的の答えにたどり着くのに手間取ることが多い。だから、ちゃちゃっとできるならピンポイントでやり方をとってこようと考えるわけだ。技術者としてはあまりいい態度ではないが、社内限定のシステムで、しかも他人の作ったものの子守となれば、さっさとやっつけてしまいたいのは当然である。

 実際には、PHPのオフィシャルサイトを辿ってみると、意外なほど簡単に、目的の情報が得られた。そもそも、ウェブメールサービスなどの例を待つまでもなく、PHPでメールの送受信を行うニーズは高いわけで、SMTPサーバ指定のメール送信も、ちゃんとしたAPIがきっちり用意されていた。
 なるほど、ここまできっちりと機能が提供されていて、しかもその情報に簡単にたどり着けるなら、わざわざよそでそんな情報を紹介する必要もないわけだ。当然過ぎて、あるいは簡単過ぎてかえってだれも教えてくれない、というのはありがちな話である。

 さて、目的の情報にたどり着いたのはよかったが、その手順に則ってやっても、どうもうまく送信できない。エラーが出ている様子もない。どうしたことか。
 しばらく試行錯誤してみたが、わからない。PHPのマイナーバージョンによる差異なのか、あるいはSMTPサーバとの相性か。開発時期が古いので、そうしたこともあり得る。そうだとすると厄介だ。どうしよう。いっそローカルのメールサーバから外に出すように設定変更しようか…。

 そうこうするうちに、ふと思い付いて、外のメールサーバ宛にpingを打ってみる。すると、なんとそのIPにアクセスできない。自分のデスクにある個人マシンからは、もちろんアクセスできる。
 調べてみると、そのウェブアプリ機は、外向けにアクセスするためのゲートウェイ設定がなされていなかったのである。なんということ。まさか社内ローカル専用となっていたとは。ある意味、車が動かなくなったと連絡を受けて整備員が出かけてみたところ、なかなか原因がわからず、頭を抱えたところで、ガス欠とわかったようなものである。そこまで極端ではないが。
 まあよくよく考えてみれば、外部にアクセスする必要がないならネットをイントラに制限しておくに越したことはない。ただし、そういう意識をもって開発者がそういう設定にしたのか、単にゲートウェイの設定を忘れたのかは定かではない。言えることは、これまではそれで問題なく使えたし、これからは外のIPにアクセスできないと使えない、ということ。

 ゲートウェイのroute設定をしたら、メールは難なく送信できるようになった。まだいくつか山はあったが、まあまあこれで解決。一つ確かなのは、こうしたこと一つとっても、人によってふつう考えられないような設定やらカスタマイズやらしている場合があるということで、それを考えると、やはりシステムの保守というのは厄介な仕事だということがわかる。

 ともかく、半日つぶれてしまったのである。超多忙な先月でなかったのは実に幸いであった。

スポンサーサイト

コメント

コメントの投稿

Name
Title
E-mail
URL
Comment
Password
※入力しないと編集・削除ができません
 管理者にだけ表示を許可する

トラックバック

この記事へのトラックバックURL

http://questkpax.blog51.fc2.com/tb.php/465-a78cf7aa

インターネットを集める

RFC 2821 - Simple Mail Transfer Protocol RFC 1869 - SMTP Service Extensions (ESMTP) RFC 1891 - SMTP Service Extension for Delivery Status Notifications (DSN) RFC 2554 - SMTP Service Extension for Authentication ・[network] さくらインターネットのメールボ

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。