设计确认电子邮件似乎已发送但未收到

问题描述

我可以在通过同步和异步注册时通过 Sendgrid 发送/接收示例电子邮件,我只需将方法调用添加注册控制器上的注册/创建中。

虽然我无法收到要发送的确认电子邮件,看起来它已经发送了,但我没有收到它,但我可以收到我发送的样品的电子邮件。我现在正在本地完成所有这些工作。

post transaction

Started POST "/users" for ::1 at 2021-01-28 22:59:54 -0600
Processing by Users::RegistrationsController#create as HTML
  Parameters: {"utf8"=>"✓","authenticity_token"=>"xxx","user"=>{"email"=>"[email protected]","password"=>"[FILTERED]","password_confirmation"=>"[FILTERED]"},"commit"=>"Sign up"}
  [1m[35m (0.3ms)[0m  [1m[35mBEGIN[0m
  ↳ app/controllers/users/registrations_controller.rb:18:in `create'
  [1m[36mUser Exists? (0.7ms)[0m  [1m[34mSELECT 1 AS one FROM "users" WHERE "users"."email" = $1 LIMIT $2[0m  [["email","[email protected]"],["LIMIT",1]]
  ↳ app/controllers/users/registrations_controller.rb:18:in `create'
  [1m[36mUser Create (0.6ms)[0m  [1m[32mINSERT INTO "users" ("email","encrypted_password","confirmation_token","confirmation_sent_at","created_at","updated_at") VALUES ($1,$2,$3,$4,$5,$6) RETURNING "id"[0m  [["email",["encrypted_password","xxxx"],["confirmation_token","r-krQR4swLNVNaxWpN1w"],["confirmation_sent_at","2021-01-29 04:59:59.413152"],["created_at","2021-01-29 04:59:59.412987"],["updated_at","2021-01-29 04:59:59.412987"]]
  ↳ app/controllers/users/registrations_controller.rb:18:in `create'
  [1m[35m (0.4ms)[0m  [1m[35mCOMMIT[0m
  ↳ app/controllers/users/registrations_controller.rb:18:in `create'
  Rendering users/mailer/confirmation_instructions.html.erb
  Rendered users/mailer/confirmation_instructions.html.erb (Duration: 0.9ms | Allocations: 258)
  Rendering users/mailer/confirmation_instructions.html.erb
  Rendered users/mailer/confirmation_instructions.html.erb (Duration: 0.2ms | Allocations: 80)
SendGridApi::Email#confirmation_instructions: processed outbound mail in 11521.0ms
Delivered mail 6013965ae996c_175fe3fc53ffc5cbc46913@user-8888.cable.provider.com.mail (614.8ms)
Date: Thu,28 Jan 2021 23:00:10 -0600
From: please-change-me-at-config[email protected]
Reply-To: please-change-me-at-config[email protected]
To: [email protected]
Message-ID: <6013965ae996c_175fe3fc53ffc5cbc46913@user-8888.cable.provider.com.mail>
Subject: Confirmation instructions
Mime-Version: 1.0
Content-Type: text/html;
 charset=UTF-8
Content-transfer-encoding: 7bit

<p>Welcome <email-addy>!</p>

<p>You can confirm your account email through the link below:</p>

<p><a href="http://localhost:3000/users/confirmation?confirmation_token=r-xxx">Confirm my account</a></p>

Redirected to http://localhost:3000/
Completed 302 Found in 17300ms (ActiveRecord: 1.9ms | Allocations: 201325)


Started GET "/" for ::1 at 2021-01-28 23:00:11 -0600
Processing by HomeController#index as HTML
  Rendering home/index.html.erb within layouts/application
  Rendered home/index.html.erb within layouts/application (Duration: 0.2ms | Allocations: 69)
[Webpacker] Everything's up-to-date. nothing to do
  Rendered users/shared/_links.html.erb (Duration: 0.7ms | Allocations: 309)
Completed 200 OK in 9ms (Views: 8.5ms | ActiveRecord: 0.0ms | Allocations: 4412)

对我来说一切都很好。

以下是其他一些相关的文件

devise.rb

Devise.setup do |config|
  config.mailer_sender = 'please-change-me-at-config[email protected]'
  # config.mailer = 'Devise::Mailer'
  config.mailer = 'Email'
  require 'devise/orm/active_record'
  config.reconfirmable = true
end

lib/email.rb

# frozen_string_literal: true

class Email < Devise::Mailer

  helper :application
  include Devise::Controllers::UrlHelpers
  default template_path: 'users/mailer'
end

development.rb

  Rails.application.configure do

    config.action_mailer.default_url_options = { host: 'localhost',port: 3000 }
    config.action_mailer.delivery_method = :smtp

    ActionMailer::Base.smtp_settings = {
      port: 587,address: 'smtp.mailgun.org',domain: ENV['domain'],user_name: ENV['username'],password: ENV['password'],authentication: :plain
    }
  end

user.rb

class User < ActiveRecord::Base
  devise :database_authenticatable,:registerable,:recoverable,:rememberable,:validatable,:confirmable
end

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)