ユーザログイン時のメールが届かない!
急な見出しだが、この問題に直面して随分と苦戦した。
頑張った挙句、凄惨な末路を辿ったので念のため備忘録としてのメモ。
とりあえずデバイスをgemでインストールをし、開発時のメール送信先の設定を行う。
今回はgmailを使用した。
config/environments/development.rb
config.action_mailer.default_url_options = { host: 'cloud9のドメイン(○○○.c9users.io)', port: 8080(使用するポート番号を入力) }
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:user_name => "自分のgmailアドレス",
:password => "gmailのアプリケーション固有のパスワード",
:authentication => :plain,
:enable_starttls_auto => true
}
上記のアプリケーション固有のパスワードとは、gmailのログインパスでもなければcloud9のログインパスでもありません。
https://support.google.com/mail/answer/185833?hl=ja
上記URLでログイン後、アプリケーション(この場合cloud9?)から使用する際のパスワードをいちいち生成して、それを張り付けるという意味です。googleのセキュリティカオス。
config/initializers/devise.rb
config.mailer_sender = '自分のgmailアドレス'
なぜかこのファイル内にconfig.mailer_senderが二行あったのでとりあえず二行に自分のアドレスをぶち込む。
db/seeds.rb
user = User.new :username => '名前', :email => '自分のgmailアドレス', :password => 'gmailのアプリケーション固有のパスワード', :admin => true
user.save!
最後にシードファイルでテーブルに一行のデータを流し込んで終了。
$ rake db:seed
無事データが入ったみたい。
railsアプリ起動
railsアプリ内で早速ユーザログインしてみる。
メールアドレス宛にURLを送りました的なメッセージが出たので、gmailを見に行く。
結果
メールは来ていたが、、、
利用規約違反でgmailアカウントを止められた。
なぜなんでしょう。
どなたかわかる方いましたら、コメントで教えてくださいお願いします。
変化がありましたら追記予定です。