我没有得到确认邮件

时间:2015-09-24 23:05:53

标签: ruby-on-rails ruby devise mailcatcher

我的设计邮件确认有问题。 我添加了mailcatcher,工作正确:

 Rails.application.configure do
      config.cache_classes = false
      config.eager_load = false
      config.consider_all_requests_local       = true
      config.action_controller.perform_caching = false
      config.action_mailer.raise_delivery_errors = false
    config.action_mailer.perform_deliveries = true
      config.active_support.deprecation = :log
      config.active_record.migration_error = :page_load
      config.assets.debug = true
      config.assets.digest = true
      config.assets.raise_runtime_errors = true
      config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {:address => "localhost", :port => 1025}
    end

但我没有在我的Gmail上获取此信息。 这是我在rails上的代码:

/development.rb

  Rails.application.configure do
      config.log_level = :debug
      config.i18n.fallbacks = true

      config.log_formatter = ::Logger::Formatter.new
      config.active_record.dump_schema_after_migration = false
      config.action_mailer.default_url_options = {:host => 'localhost:3000'}
    config.action_mailer.delivery_method = :smtp
    config.action_mailer.smtp_settings = {
      :address => "127.0.0.1"
      :port    => 25,
      :domain  => 'localhost:3000'
    }
    end

/production.rb

newGameInfo.players.length = 0;

我在尝试设置邮件确认时使用此注释就像文档一样:     http://jsfiddle.net/darcher/819yz9Ly/

2 个答案:

答案 0 :(得分:2)

要启用电子邮件发送,您需要做两件事。

  1. 在config / environments / development.rb中配置您的电子邮件(不确定您是否已经这样做了。

  2. 通过编辑config / initializers / devise.rb在Devise中配置您的电子邮件。鉴于您的日志中显示“来自”地址,您肯定没有这样做。

  3. 步骤1.以下是您从Gmail帐户发送的设置。请注意所有电子邮件设置,包括允许在开发模式下发送电子邮件和默认网址选项。您必须更改smtp设置才能反映您的帐户。

        Rails.application.configure do
          # Settings specified here will take precedence over those in config/application.rb.
    
          # In the development environment your application's code is reloaded on
          # every request. This slows down response time but is perfect for development
          # since you don't have to restart the web server when you make code changes.
          config.cache_classes = false
    
          # Do not eager load code on boot.
          config.eager_load = false
    
          # Show full error reports and disable caching.
          config.consider_all_requests_local       = true
          config.action_controller.perform_caching = false
    
          # Send emails in test mode
          config.action_mailer.perform_deliveries = true
          config.action_mailer.default_url_options = { :host => 'localhost:3000' }
          config.action_mailer.delivery_method = :smtp
    
          # Don't care if the mailer can't send.
          config.action_mailer.raise_delivery_errors = true
    
          config.action_mailer.smtp_settings = {
          address:            "smtp.gmail.com",
          port:               587,
          domain:             "domain.of.sender.net",
          authentication:     "plain",
          user_name:          "your_user_name",
          password:           "your_password",
          enable_starttls_auto: true
      }
    

    步骤2.配置config / initializers / devise.rb以包含您刚配置用于发送的电子邮件。

    # Use this hook to configure devise mailer, warden hooks and so forth.
    # Many of these configuration options can be set straight in your model.
    Devise.setup do |config|
      # The secret key used by Devise. Devise uses this key to generate
      # random tokens. Changing this key will render invalid all existing
      # confirmation, reset password and unlock tokens in the database.
      # Devise will use the `secret_key_base` on Rails 4+ applications as its `secret_key`
      # by default. You can change it below and use your own secret key.
      # config.secret_key = 'ewe44lwemwle66wmew4lewwew'
    
      # ==> Mailer Configuration
      # Configure the e-mail address which will be shown in Devise::Mailer,
      # note that it will be overwritten if you use your own mailer class
      # with default "from" parameter.
      config.mailer_sender = 'YOUR_EMAIL_HERE'
    

答案 1 :(得分:1)

这听起来像是一个愚蠢的问题,但你是否在localhost上运行smtp服务器?