12
9

More than 5 years have passed since last update.

docker環境における、mailcatcherのSMTPサーバー構築方法

Posted at

前提

 dockerのコンテナ内で作業していることを前提とします。

docker exec -it コンテナ名 bash

mailcatcherとは?

 mailcathcerとは、railsのgemの一つです。
ちなみにGemfileに直接書き込むとエラーが出てしまうようです。

gem install mailcatcher

 でインストールしてください。

 ちなみに、mailcatcherとは開発環境用に簡易的なSMTPサーバーを立ち上げる事ができる便利なgemです。
 

 例えば開発環境にて、RailsのAction Mailerなどでメール通知がしたい時に、送信先に実際に送るのではなく、mailcatcherのサーバーに送ります。
 そして、「localhost:1080」にアクセスすると、送ったメールを確認する事ができ流というわけです。

mailcatcher

docker環境で、mailcatcherを使う方法

 docker環境では、mailcatherのサーバーにそのままメールを送っても、接続を拒否されてしまいます。
 まず、dockerのホスト、IPアドレスを特定しましょう。

ip route

 これで、IPアドレスを特定できます。
そして、そのIPアドレス宛に(ポートは1025)メールを送信します。

 また、docker-compose.ymlに以下を書き込みましょう。

smtp:
    image: schickling/mailcatcher
    ports:
      - "1080:1080"
      - "1025:1025"

 あとは、

docker-compose up

をするだけです。

 docker-compose upはコンテナ外でしましょう。
ちなみにdockerが立ち上がっている状態での「docker-compose up」は新たにコンテナを作成する動きにならず、上書きのようになるようです。

 「localhost:1080」にアクセスして、メールが届いていればOKです。

お二方の記事を参考にさせて頂きました。
@jiz
@shinofara

12
9
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
12
9