LoginSignup
15
15

More than 5 years have passed since last update.

MailCatcher でメールの送受信をテストしよう

Posted at

お問い合わせフォームや、 ECの注文完了、サンクスメール、メルマガ機能など、メールの送信機能をテストしたい場合に便利なツールをご紹介します。

メール送信関連の機能を開発する際、大量にメールを送信してメールサーバーに怒られたり、携帯キャリアのドメインへの送信など、通常のメールサーバーでは、テストが難しいことが多いです。

この MailCatcher というツールは、

  • テスト用の SMTP サーバーとして使用可能
  • 外部にメールを漏らさない
  • MailCatcher の SMTP に送信したメールを受信チェック可能

という便利な機能を持っています。

インストール方法

  • 前提として Ruby1.9.3以降 がインストールされている必要があります
  • Windows でも動きます。
### インストール
gem install mailcatcher

### 起動
mailcatcher

docker をお使いの方は、以下のコマンドを使用すると良いでしょう

docker run -d -p 1080:1080 -p 1025:1025 \
  --name mailcatcher schickling/mailcatcher

設定方法

SMTP サーバーのポート番号に 1025 を指定するだけです。

EC-CUBE3系をお使いの場合は、 app/config/eccube/mail.yml を以下のように設定します。


mail:
    transport: smtp
    host: localhost
    port: '1025'
    username: ''
    password: ''
    encryption: null
    auth_mode: null
    charset_iso_2022_jp: false

EC-CUBE2系をお使いの方は、 管理画面→パラメータ設定または、 data/config/config.php の以下のパラメータを設定をしてください。

  • MAIL_BACKEND smtp
  • SMTP_PORT 1025
  • SMTP_HOST localhost

メールの確認方法

送信したメールをチェックするには、ブラウザから http://localhost:1080 にアクセスします。

スクリーンショット

これを使えば、携帯キャリアのRFC違反メールアドレスもテスト可能です。
また、メールが外に漏れることはないので、顧客にテストメールを送信してしまう、、などのトラブルも防止できます。

その他

Web API 経由でもメールチェック可能ですので、EC-CUBE3 では、この MailCatcher をユニットテストで活用しています。

興味のある方は EccubeTestCase クラス をご覧ください

15
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
15