アヤオのレベリングキロク

日々のインプットをここでアウトプットします

【Rails】Mailhogを使ってみる@MacOSのローカル

Mailhogを使ってみたい!

会社で使ったことはありますが、他の方が設定してくれたのをDockerでまるっと使っていました。

今回、自分で初めて設定してみて、若干つまったのでキロクしておこうと思います。

Mailhogって何?

goで作られたオープンソースのメールシステム。

githubのスターも9000件以上と最近ちょっと人気らしい。

github.com

使うメリットは、個人的にはこの辺に感じてる

  • テストメールを間違って送付してしまう心配がない
  • 簡単にインストールできる
  • 様々な環境に対応している (MacOS, Debian / Ubuntu, Dockerなど)

今回やりたいこと

今開発しているシステムはまだ駆け出しで、docker化とかもされてません。

そのため、簡単にローカルでテストしたいと思いました。

で、調べてみると、phpやdockerで使う方法はよく出てくるのですが、Railsでやる方法があまりなくちょっと困りました。

実際どうやった?

以下のような手順で進めました

1. Mailerを実装する

こちらの公式ガイドを参考にまずはMailerを用意し、メールの本文まで準備しました

railsguides.jp

2. Mailhogをインストール

GitHubのReadmeにかかれている通りにインストールします。

github.com

私はMacOSだったので、以下を実行しました。

brew update && brew install mailhog

3. sendmailの代わりのmhsendmailをインストール

readmeを見るとmhsendmailを使うというのでインストールします。

brew install go
go get github.com/mailhog/mhsendmail

4. RailsからMailhogに送付するようにする

最後にconfig/environments/development.rbに以下のような記述を追記します。

 config.action_mailer.delivery_method = :smtp
 config.action_mailer.smtp_settings = { location: '/usr/local/bin/mhsendmail', port: 1025 }

これでRailsのサーバーを立て直して、送付してみたらできました!

実際にはこんな感じ!

f:id:ayao22191:20220127204808p:plainf:id:ayao22191:20220127204759p:plain

まとめ

今回はMailerActionのsendmail_settingsのオプションを学びました!

こういった設定系はやらないと覚えないので、いい経験でした。