facebook twitter hatena line google mixi email

Ruby/rails/mail

提供: 初心者エンジニアの簡易メモ
移動: 案内検索

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