Sendgrid не отправляет электронное письмо на приложение Heroku для Rails - PullRequest
0 голосов
/ 16 февраля 2019

Я использую Devise для аутентификации пользователя, SendGrid для отправки электронной почты и Heroku для размещения моего приложения Rails.

Проблема заключается в том, что SendGrid должен отправлять электронное письмо с подтверждением, когда пользователь регистрируется, иПриветственное электронное письмо после того, как пользователь подтвердил, но SendGrid не отправляет эти электронные письма, хотя я вижу, что Heroku отправляет электронную почту через журналы Heroku.

mailers/welcome_email.rb

class WelcomeEmail < ApplicationMailer

    def welcome_email(user)
        @user = user
        mail to: @user.email, subject: "Thanks for joining!", from: "info@app.com"
    end

end

models/user.rb

class User < ApplicationRecord
    devise :database_authenticatable, :registerable,
           :recoverable, :rememberable, :validatable, :confirmable

    def after_confirmation
        WelcomeEmail.welcome_email(self).deliver
    end

end

views/welcome_email.html.erb

<h1>This is the welcome email!</h1>

config/environments/development.rb

Rails.application.configure do

  config.action_mailer.perform_deliveries = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = { :address => "localhost", :port => 1025 }
  config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }

end

config/environments/production.rb

Rails.application.configure do
  # for emails to go out
  config.action_mailer.default_url_options = { host: 'appname.herokuapp.com', protocol: 'https' }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true
  config.action_mailer.smtp_settings = {
    :user_name => ENV['SENDGRID_USERNAME'],
    :password => ENV['SENDGRID_PASSWORD'],
    :domain => 'herokuapp.com',
    :address => 'smtp.sendgrid.net',
    :port => 587,
    :authentication => :plain,
    :enable_starttls_auto => true
  }
end

Журналы Heroku

INFO: Rendering devise/mailer/reset_password_instructions.html.erb
INFO: Rendered devise/mailer/reset_password_instructions.html.erb
DEBUG: Devise::Mailer#reset_password_instructions: processed outbound mail
INFO: Sent mail to email@gmail.com
DEBUG: Date: 16 Feb 

From: info@app.com
Reply-To: info@app.com
To: email@gmail.com
Subject: Reset password
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
...
Hello user!
...

INFO: Redirected to https://app.herokuapp.com
Completed 302 Found in 267ms

Я просмотрел SO, сообщения в блогах, видео и руководства без какого-либо успеха.Может кто-нибудь помочь мне, пожалуйста?

1 Ответ

0 голосов
/ 16 февраля 2019

Хотите, чтобы электронное письмо было отправлено сразу?Попробуйте deliver.now вместо deliver

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...