掲示板お問い合わせランダムジャンプ



この広告は30日以上更新がないブログに表示されております。 新しい記事を書くことで広告を消すことができます。

2010年08月12日
外部に送信しないSMTPサーバ
これも表題そのままの内容だが、意外と必要な場面は多い。
一応はドメインも持っているので、アドレスを限定すれば他の人に迷惑をかけずにテストをすることもできるのだが、やはり万が一ということもある。そこで、決して外部(The Internet)に送信しないSMTPサーバ(もしくはその設定)を断続的に探していたのだが、そのものずばりというモノがやはりあった。

メールをどこにも送らずHTMLで保存するSMTPサーバ mocksmtpd.rb
詳しくはリンク先を見てほしい。Webとして表示可能であるので、Web関連の自動テストで対応可能なコトも便利だ。Ruby 1.9ということで多少敷居は高いが、これだけの為に導入する価値はあるだろう。

・・・が、若干の問題を発見してしまった。ごく短時間(実測で63ms)に複数のメールを送信すると異常終了してしまい、その後メールを受け付けなくなってしまうのだ。
正確には、メール本体を保存できてはいるのだが、一覧表を含むindex,html(リンク先で「Inbox」と先頭に表示されている画面)を更新しようとするとエラーになってしまう。

Rubyの勉強を兼ねて少し中身を覗いてみたのだが、どうやら

1.メール受信処理
 ↓
2.index.htmlを文字列として読み込み
 ↓
3.HTML内の特定のコメントを文字列検索し、その位置に受信したメールの情報を一行追加

という動作をしているのだが、複数のメールの処理が重なると、2.と3.の間での排他制御がうまくいかず、「特定のコメント」がindex.htmlから消えてしまう、という事で動作しなくなってしまうようだ。

という事で、受信したメールを検索し表示するたびに一覧表を生成しなおす、というRubyのWebアプリを書いてみた。作成者にも連絡を取ったので、許可が出れば公開しよう。

が、Rubyを勉強し始めて実質3日。バグはてんこ盛りだと思われるので、もしご利用されるとしてもその点はくれぐれもご承知おき願いたい。
[ 投稿者:朽木三郎 at 18:18 | Ruby | コメント(1) | トラックバック(0) ]

この記事へのコメント
無題
難しい・・・
投稿者: 波田純 at 2016-05-15 15:28:46

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

この記事へのトラックバックURL
http://shinshu.fm/MHz/52.04/a12767/0000334123.trackback

この記事の固定URL
http://shinshu.fm/MHz/52.04/archives/0000334123.html

記事へのコメント
 
簡単演算認証: 5 x 8 + 5 =
計算の答えを半角英数字で入力して下さい。
名前: [必須]
URL/Email:
タイトル:
コメント:
※記事・コメントなどの削除要請はこちら