簡體   English   中英

如何在Ruby on Rails Web應用程序中驗證是否發送了帳戶激活電子郵件

[英]How to verify if an account activation email was sent or not in Ruby on Rails web application

我正在構建一個具有帳戶激活功能的Web應用程序。 我正在關注Michael Hartl ROR教程,但沒有收到任何帳戶激活電子郵件到我的收件箱。 我嘗試在線搜索如何驗證是否已發送電子郵件。 就像應該配置一個SMTP服務器來發送電子郵件,對不對? 沒有發現任何幫助。 有人可以幫忙嗎?

我的account_activations_controller.rb

class AccountActivationsController < ApplicationController

  def edit
    user = User.find_by(email: params[:email])
    if user && !user.activated? && user.authenticated?(:activation, params[:id])
      user.activate
      log_in user
      flash[:success] = "Account activated!"
      redirect_to user
    else
      flash[:danger] = "Invalid activation link"
      redirect_to root_url
    end
  end
end

User_mailer.rb

class UserMailer < ApplicationMailer

  def account_activation(user)
    @user = user
    mail to: user.email, subject: "Account activation"
  end
end

application_mailer.rb

class ApplicationMailer < ActionMailer::Base
  default from: "noreply@example.com"
  layout 'mailer'
end

development.rb

config.action_mailer.raise_delivery_errors = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :test
  host = 'localhost:3000'
  config.action_mailer.default_url_options = { :host=> host }

桑迪普,

繼續閱讀教程。 我使用了較舊版本的Michael教程來學習Rails,但是當我也想發送確認電子郵件時回來了。 我認為您不應該期望發送實際的電子郵件(至少不是在開發模式下),Rails 4.1.x具有您可以查看的郵件預覽,我認為這是本教程涵蓋的內容。

當進入生產環境時,您將需要設置一個外部服務器來發送實際的電子郵件,但這將在您的production.rb文件中。 如果您只是在學習,則有很多選擇,包括設置gmail帳戶(與您的私人帳戶分開),每天可以在其中發送有限數量的電子郵件。

這是我認為您應該查看的鏈接: 清單10.15

我對Michael Hartl的教程的經驗是,它幾乎是完美無缺的,您的特定系統設置可能有一個或兩個問題,但是我認為大部分與我有關的問題都與我沒有正確遵循本文有關。

希望有幫助,祝您好運!

將此添加到您的config/environments/development.rb文件

config.action_mailer.raise_delivery_errors = true

這樣一來,如果您在發送電子郵件時遇到錯誤,就會收到通知。

除此之外,您還可以向users表中添加一個字段,例如activation_sent_at ,並在發送電子郵件時填充該字段,以便以后參考。

從第491頁的底部開始閱讀:“請注意,在開發環境中您不會收到實際的電子郵件,但會在服務器日志中顯示。第10.3節討論了如何在生產環境中實際發送電子郵件。”

因此,如果您想顯式地遵循本文,我將在10.3節中介紹這些優點。 希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM