メイラー作成
$ 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
とすることで確認できます。