facebook twitter hatena line email

Ruby/rails/mail

提供: 初心者エンジニアの簡易メモ
2019年1月19日 (土) 04:58時点におけるAdmin (トーク | 投稿記録)による版 (サンプルのメール送信)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

mailを送信するために使ったrailsのライブラリ

ActionMailer

yahooメールを使う場合のサンプル

config/initializers/mail.rb

ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
  address: 'smtp.mail.yahoo.co.jp',
  domain: 'yahoo.co.jp',
  port: 587,
  user_name: 'ユーザアカウント',
  password: 'パス',
  authentication: 'plain',
  enable_starttls_auto: true
}

app/mailers/application_mailer.rb

class ApplicationMailer< ActionMailer::Base
  default from: 'hogehoge@yahoo.co.jp'
  layout 'mailer'
  def send_mail_sample()
    @url = "ttp://hogehoge.com"
    mail(
      subject: "テストメールです。",
      to: "to@example.com"
    ) do |format|
      format.html
    end
  end
end

app/views/applicatioin_mailer/send_mail_sample.html.erb

テストメールです本文
<%= url %>

app/controllers/test_controller.rb

class TestController < ApplicationController
  def email
    ApplicationMailer.send_mail_sample().deliver
    render :json => "test"
  end
end

config/routes.rb

get 'test/email'

サンプルのメール送信

~/test/emailにブラウザでアクセス

Net::SMTPAuthenticationErrorエラーが出る場合

gmailの場合は、不正ログインチェックが来てないか再度ログインして確認して見る

gmailの場合は以下のように書き換える

config/initializers/mail.rb

   address: 'smtp.gmail.com',
   domain: 'gmail.com',
   port: 587,
   user_name: 'ユーザーアカウント名',
   password: 'パス',
   authentication: 'plain',
   enable_starttls_auto: true

参考

https://qiita.com/hirotakasasaki/items/ec2ca5c611ed69b5e85e