Railsでmailer メール機能作成



メイラー作成

$ rails generate mailer ContactMailer


'mailers/contact_mailer.rb'にsend_mailメソッドを作成

def send_mail
        mail(
            from: 'サイトの名前など',
            to:   ENV['URL'],
            subject: "メソッドが実行されメールが送信されました", 
            )
    end


controllerのメソッドに

ContactMailer.sendmail.deliverlater 


含ませるとそのメソッドが実行した時にメイラーも実行される。


'views/contact_mailer'に'send_mail.html.erb','send_mail.text.erb'を手動で作成する
ファイルの中のコメントなどはお好きにどうぞ


'config/environment/production.rb'

config.active_record.dump_schema_after_migration = false

config.action_mailer.perform_caching = true
# デフォルトではfalseになっているのをtrueに変更する

  config.log_level = :info
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
      address: 'smtp.gmail.com',
      port: 587,
      domain: 'smtp.gmail.com',
      user_name: ENV['URL'],
      password: ENV['PASS'],
      authentication:       'login',
      enable_starttls_auto: true
  }


.env

URL=**
PASS=****



Herokuでデプロイする場合heroku上の環境変数を設定しなければいけません(結構ここでひっかかります)
CLIで設定するには

$ heroku config:set YOUR_ENV_VARIABLE_NAME=value 


herokuにログインして直接設定するには
アプリのsettingsからgonfigverというところで設定できます。

herokuの環境設定を確認するには

$ heroku config


とすることで確認できます。