让Devise 1.3.4在开发中使用Gmail发送电子邮件

时间:2011-05-09 07:42:57

标签: ruby-on-rails devise actionmailer

我正在尝试设置设计1.3.4,以便在开发模式下通过Gmail发送电子邮件。我应该提一下,我使用的是Rails 3.0.4和Ruby 1.9.2p136。

我在config / environments / development.rb中尝试了以下内容:

config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true

config.action_mailer.default_url_options = { :host => 'mydomain.com' }

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

在config / initializers / devise.rb中我改变了

 config.mailer_sender = "please-change-me-at-config-initializers-devise@example.com"

 config.mailer_sender = "info@mydomain.com"

然后我试了

http://yekmer.posterous.com/devise-gmail-smtp-configuration

它还没有用。

是否有关于如何让邮件工作的维基页面?我在日志中看到了电子邮件,看起来很棒!链接工作等...我只想在我的电子邮件帐户中看到它们。


修改

我找到了答案 - 我使用http://yekmer.posterous.com/devise-gmail-smtp-configuration - 当我将它放在config / environments / development.rb中时,我一直把这些代码放在config / intializers / devise.rb中。

4 个答案:

答案 0 :(得分:2)

你试过这个吗?

config.action_mailer.default_url_options = { :host => 'localhost:3000' }
ActionMailer::Base.smtp_settings = {  
  :address              => "smtp.gmail.com",  
  :port                 => 587,  
  :domain               => "gmail.com",  
  :user_name            => "myinfo@gmail.com",  
  :password             => "secret",  
  :authentication       => "plain"
  # :enable_starttls_auto => true # I don't have this, but it should work anyway 
} 

--------- 编辑

它被发送可能是因为垃圾邮件过滤器而没有收到它,首先要检查:

class UserMailer < ActionMailer::Base
  default :from => "myinfo@gmail.com"
  # ...
end

答案 1 :(得分:2)

你应该把它放在设计初始化器中:

# Configure the class responsible to send e-mails.
  config.mailer = "YourAppDeviseMailer"

然后创建一个扩展Devise :: Mailer的类:

class YourAppDeviseMailer < Devise::Mailer
  default :from => 'your_email'

  def self.mailer_name
    "devise/mailer"
  end
end

答案 2 :(得分:1)

我认为您可以在config / initializers / devise.rb中更改它。我认为不需要新的课程吗?

#config/initializers/devise.rb
config.mailer_sender = 'youremail@gmail.com'

答案 3 :(得分:0)

检查ActionMailer :: Base.delivery_method的值是否为:smtp