前提
dockerのコンテナ内で作業していることを前提とします。
docker exec -it コンテナ名 bash
mailcatcherとは?
mailcathcerとは、railsのgemの一つです。
ちなみにGemfileに直接書き込むとエラーが出てしまうようです。
gem install mailcatcher
でインストールしてください。
ちなみに、mailcatcherとは開発環境用に簡易的なSMTPサーバーを立ち上げる事ができる便利なgemです。
例えば開発環境にて、RailsのAction Mailerなどでメール通知がしたい時に、送信先に実際に送るのではなく、mailcatcherのサーバーに送ります。
そして、「localhost:1080」にアクセスすると、送ったメールを確認する事ができ流というわけです。
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