- Ruby / Rails関連
READ MORE
今回はDocker上にmailhogを使ってSMTPのローカルテストサーバを構築する手順を自分用にメモします。
実はローカルのSMTPサーバ構築については既に以下の記事がTechRachoにあるのですが、長い記事なので今回はローカルSMTPテストサーバーの構築に絞り込みました。
ちなみにmailhogとは、Go言語で書かれたメール送信テスト専用のメールサーバーです。
まずdocker-compose.ymlを下記のように作成します。
# https://qiita.com/k8uwall/items/e3e19937f7749f5c2a32 より
version: "3"
services:
mail:
image: mailhog/mailhog:latest
ports:
- "8025:8025"
- "1025:1025"
参考: MailHogでテスト用メールサーバーを立てる - Qiitaより
docker-compose up -d
gem install mail
でmail gemをインストールする必要があります。
# mail.rb
require 'mail'
mail = Mail.new do
from 'from@example.net'
to 'to@example.net'
subject 'This is Test Mail'
body 'Body.'
end
mail.delivery_method :smtp, { address: 'localhost', port: 1025 }
mail.deliver!
ruby ./mail.rb
8025番ポートでWebメールの画面を確認できます。ブラウザで下記のURLにアクセスします。
http://localhost:8025/
使用するポートは下記の2種類になります。
どちらも、SMTPのポート番号25番を踏襲したポート番号です。
以上、簡単でしたがローカルでメールサーバを動作させるのに便利に使えると思います。