0
0

letter_opener_web設定

Posted at

railsを使ってメールを送信するまでの手順です。

環境

rails 6.1.7.6
ruby 3.0.6
letter_opener_web 2.0.0

手順

  1. letter_opener_webインストール
  2. Mailer設定
  3. mailerジェネレーター実行
  4. ビュー編集

letter_opener_webインストール

devleopment環境だけしか使わないので環境を限定してインストールします。

Gemfile
group :development, :test do
  gem 'letter_opener_web', '~> 2.0'
end

routes編集

letter_opener_webのUIを確認できるパスを設定します。

config/routes.rb
if Rails.env.development?
  mount LetterOpenerWeb::Engine, at: "/letter_opener"
end

Mailer設定

railsではActionMailerというライブラリを使ってメールを扱うようです。
devleopment.rbを編集することで初期設定を行います。

config/environments/development.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_caching = false
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
config.action_mailer.delivery_method = :letter_opener_web
config.action_mailer.perform_deliveries = true

Mailer作成

railsジェネレーターを使ってメーラーを作成します。

rails g mailer hoge

下記のようなファイルが作成されます。

今回はメールが送信できたらそれで良いので宛先も件名も適当に決めます。

app/mailers/hoge_mailer.rb
class HogeMailer < ApplicationMailer
  def hoge
    mail(to: 'a@b.com', subject: 'Hoge')
  end
end

View作成

hogeというアクションを作成したのでそれに対応するviewを作成します。

app/views/hoge_mailer/hoge.html.erb
<p>
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>

あとはメールを送信したいアクションで下記のメソッドを実行すれば送信できます。

HogeMailer.hoge.deliver_now
0
0
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
0
0