-
Notifications
You must be signed in to change notification settings - Fork 0
Action mailerのメール送信機能
shunto edited this page Nov 10, 2019
·
4 revisions
config/initializers/mail.rb
- production: 本番環境
- development: 開発環境
- else: テスト環境 の3つでそれぞれ設定する
if Rails.env.production?
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
address: 'smtp.gmail.com',
domain: 'gmail.com',
port: 587,
user_name: 'Gmail のメールアドレス',
password: 'Gmail のパスワード',
authentication: 'plain',
enable_starttls_auto: true
}
elsif Rails.env.development?
ActionMailer::Base.delivery_method = :letter_opener
else
ActionMailer::Base.delivery_method = :test
end
※ 開発環境で行うときはletter-opener
を使ったので、gem 'letter-opener'
が必要
$ rails g mailer NotificationMailer
app/mailers/notification_mailer.rb
class NotificationMailer < ApplicationMailer
default from: "送信元のアドレス"
def send_confirm_to_user(contact)
@contact = contact
mail(
subject: "お問い合わせありがとうございました。", # メールのタイトル
to: @contact.user.email # 宛先
) do |format|
format.text
end
end
end
app/views/notification_mailer/send_confirm_to_user.text.erb
<%= @user.name %> 様
○○への会員登録が完了しました。
マイページはこちら
<%= user_url(@user) %>
app/controllers/users_controller.rb
if @user.save
NotificationMailer.send_confirm_to_user(@user).deliver
※ この処理が終わるまで、以降の処理がされないので、Active_jobを行いたいときは、deliver => deliver_laterに変更する
if @user.save
NotificationMailer.send_confirm_to_user(@user).deliver_later
※ Gmailアドレス以外からはSMTP通信ができないようになっている