テスト用のメールサーバを検討するmemoTech単なる技術メモ。テストは必要コミュニケーションツールとしてチャットに人気が集まっている今日この頃。それでもメールは認証情報の送信など、重要な役割を担っている。いった重要な機能はテストが必要だ。単純にメールが送られたかどうかを見るならまだしも、送信先メールアドレスと本文に入れた顧客名が適切な組み合わせなのか、注文確認メールと発送案内メールを正しく出し分けているのか、社内/パートナー会社/それ以外で文面を切り替えられているのか、テストで確認すべきことは結構ある。Endのテストでメールを確認することは必要だ。テストで使うメールサーバを検討してみる。Test用のSendmailを用意する素直なアプローチ。allの設定を行えば、実際に配信されることもない。起動時に名前解決を行うため、テスト環境を適切に構築しないと、タイムアウトするまで起動しない。設定を間違えると、本当に配信されてしまう。インフラ寄りの知識が必要になるので、人によってはハードルが高い。Serverを使うシンプルなアプローチ。localhost:1025でOK。受信したメールは標準出力に流れるので、ファイルに落として後から調べることも可能。AUTHには対応していない。APIで操作することも可能なので、メールの文面などを調べる時は便利。Messageには出てこない。AUTHの処理が行われない。メールを調べるには便利。APIでメールを取得することもできるので、文面の検証テストを自動化しやすい。SMTP-Serverライブラリ。プログラムを書く必要がある。connectionsといったエラーも発生させられる。SMTPでエラーが生じたときのテストを行うのであれば、これ。普通にテスト用のメールサーバとして使う場合も、サイトにあるコードでOK。認証エラーを起こす例がサンプルで用意されている。AUTHの動きをする。一回テストサーバのコードを書いてしまえば、他のプログラムのテストの時も多少の手直しで使えるので、一度試して見る価値はある。テストは必要ついつい自分宛にテストメールを送ってテスト完了にしてしまうことが多いだろうが、複数の送り先に同時に送ったり、送り先の人の立場によって文面を変えたりと、複雑なことをやるシステムは多いはずだ。実際の運用を想定したテストをきちんと行うことが重要であり、そういったことを行えるよう、テスト環境を構築する必要がある。幅広く抑える必要があるのだが。古いシステムを相手にしていると、今はメンテナンスされていない古いライブラリを使っていたりする。オートパイロットでWebページをたどり、ファイルをダウンロードする仕掛けが必要になった。Modelで書くのが良いとされている。久しぶりにすごいサービスがきた。ClientsはHTTPベースのファイル管理ツールである。RSpecでテストを書いていて、テストをデバッグしたい時がある。3がリリースされ、前提環境も少々変わったので、お試し環境を対応させる。Bitでログ転送ログを1箇所にまとめたいというニーズは、根強くあります。本サイトに掲載する情報に関しては、正しいものを提供することを務めていますが、掲載内容から、いかなる損失や損害などの被害が発生しても、当ブログでは責任を追いかねます。