【问题标题】:Configuring devise to send emails配置设备以发送电子邮件
【发布时间】:2011-07-28 13:06:57
【问题描述】:

我编写了一个自定义邮件程序,只要用户收到通知,它就会发送一封电子邮件。 由于某种原因,自定义邮件程序有效,但内置设计邮件程序不起作用。 我无法发送确认电子邮件

我的配置中缺少什么吗?

-devise.rb:

 config.mailer_sender = "user@gmail.com"

-setup_mail.rb:

require "development_mail_interceptor"

ActionMailer::Base.smtp_settings = {
  :address              => "smtp.gmail.com",
  :port                 => 587,
  :domain               => "gmail.com",
  :user_name            => "usename",
  :password             => "pass",
  :authentication       => "plain",
  :enable_starttls_auto => true
}



ActionMailer::Base.perform_deliveries = true
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.register_interceptor(DevelopmentMailInterceptor) if Rails.env.development?

【问题讨论】:

  • 您遇到了什么错误/异常?
  • 无,开发日志写邮件已发送但我从未收到
  • 那么它会在哪里结束呢?系统是否曾通过网络与smtp.gmail.com 通话?你能以某种方式提高错误日志记录级别吗?
  • 如何在生产环境中监控我的服务器和 smtp 之间的通信?
  • 带有网络嗅探器,例如tcpdump.org

标签: ruby-on-rails email devise


【解决方案1】:

我相信调查

config/initializers/devise.rb

将为您解决问题:

config.mailer = "Devise::Mailer"

你可以取消注释!

【讨论】:

    【解决方案2】:
    This can be helpful. After r&D, the final complete text is below:
    
    # ActionMailer Config in development/production rb file
      config.action_mailer.default_url_options = { :host => 'localhost:3000' }
      config.action_mailer.delivery_method = :smtp
      # change to true to allow email to be sent during development
      config.action_mailer.perform_deliveries = true
      config.action_mailer.raise_delivery_errors = true
      config.action_mailer.default :charset => "utf-8"
    
      config.action_mailer.smtp_settings = {
        address: "smtp.gmail.com",
        port: 587,
        domain: "mail.google.com",####important
        authentication: "plain",
        enable_starttls_auto: true,
        user_name: ENV["GMAIL_USERNAME"],
        password: ENV["GMAIL_PASSWORD"]
      }
    

    【讨论】:

      【解决方案3】:

      我今天发现了一个问题,我花了 5 个小时来解决它。 当confirmation_token 关系列为空时,Devise 的确认电子邮件无法工作。好吧,当列为空时,它工作得很好。

      #this works well
      add_column :users, :confirmation_token, :string
      add_column :users, :confirmed_at, :datetime
      add_column :users, :confirmation_sent_at, :datetime
      add_column :users, :unconfirmed_email, :string
      
      #But this cannot work !!!
      add_column :users, :confirmation_token, :string, :null => false, :default => ''
      add_column :users, :confirmed_at, :datetime, :null => false, :default => '1970-01-01'
      add_column :users, :confirmation_sent_at, :datetime, :null => false, :default => '1970-01-01'
      add_column :users, :unconfirmed_email, :string, :null => false, :default => ''
      

      希望在遇到这个问题时能帮助你。~

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-08
        • 2016-11-02
        • 1970-01-01
        • 2013-05-05
        • 2017-02-22
        • 1970-01-01
        • 2018-01-15
        • 2011-08-12
        相关资源
        最近更新 更多