facebook twitter hatena line email

「Ruby/rails/mail」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(サンプルのメール送信)
 
(同じ利用者による、間の6版が非表示)
行2: 行2:
 
ActionMailer
 
ActionMailer
  
==サンプル==
+
==yahooメールを使う場合のサンプル==
 
config/initializers/mail.rb
 
config/initializers/mail.rb
 
  ActionMailer::Base.delivery_method = :smtp
 
  ActionMailer::Base.delivery_method = :smtp
行16: 行16:
  
 
app/mailers/application_mailer.rb
 
app/mailers/application_mailer.rb
  class NotificationMailer < ActionMailer::Base
+
  class ApplicationMailer< ActionMailer::Base
 
   default from: 'hogehoge@yahoo.co.jp'
 
   default from: 'hogehoge@yahoo.co.jp'
 
   layout 'mailer'
 
   layout 'mailer'
 
   def send_mail_sample()
 
   def send_mail_sample()
 +
    @url = "ttp://hogehoge.com"
 
     mail(
 
     mail(
 
       subject: "テストメールです。",
 
       subject: "テストメールです。",
 
       to: "to@example.com"
 
       to: "to@example.com"
 
     ) do |format|
 
     ) do |format|
       "テストメールです本文"
+
       format.html
 
     end
 
     end
 
   end
 
   end
 
  end
 
  end
 +
 +
app/views/applicatioin_mailer/send_mail_sample.html.erb
 +
テストメールです本文
 +
<%= url %>
  
 
app/controllers/test_controller.rb
 
app/controllers/test_controller.rb
 
  class TestController < ApplicationController
 
  class TestController < ApplicationController
 
   def email
 
   def email
     ApplicationMailer.send_net_battle().deliver
+
     ApplicationMailer.send_mail_sample().deliver
 
     render :json => "test"
 
     render :json => "test"
 
   end
 
   end
行40: 行45:
 
  get 'test/email'
 
  get 'test/email'
  
=サンプルのメール送信==
+
==サンプルのメール送信==
 
~/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
 
https://qiita.com/hirotakasasaki/items/ec2ca5c611ed69b5e85e

2019年1月19日 (土) 04:58時点における最新版

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