我对ruby on rails很新,我已经阅读了很多有关这方面的教程,但我仍然无法弄清楚是什么问题。
我已经设置了environment.rb,底部有以下几行:
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.default_content_type = "text/html"
ActionMailer::Base.smtp_settings = {
:address => 'smtp.gmail.com',
:port => 25,
:domain => 'gmail.com',
:authentication => :login,
:user_name => 'myname@gmail.com',
:password => 'mypassword'
}
然后,我有一些我正在使用的baseApp附带的代码,它执行以下操作:
UserMailer.deliver_forgot_password(self)
self 是用户对象,包含电子邮件,登录等。
该方法(属于UserMailer类)具有以下代码:
def forgot_password(user)
setup_email(user)
@subject += "Forgotten password instructions"
#{user.password_reset_code}
@body[:url] = "http://#{Setting.get(:site_url)}/users/reset_password/#"
end
protected
def setup_email(user)
@recipients = "#{user.email}"
@from = "#{Setting.get(:support_name)} <#{Setting.get(:support_email)}>"
@subject = "[#{Setting.get(:site_name)}] "
@sent_on = Time.now
@body[:user] = user
# Get Settings
[:site_name, :company_name, :support_email, :support_name].each do |id|
@body[id] = Setting.get(id)
end
end
嗯,电子邮件很好,我已经检查了他们做加注检查,但它没有发送......而且它也没有让我异常。
现在我在尝试发送电子邮件时遇到Errno :: ECONNREFUSED错误。现在怎么了?
谢谢, 布赖恩
答案 0 :(得分:1)
答案 1 :(得分:1)
从rails 2.3.2开始这样做的新方法是
:enable_starttls_auto => true
无需额外的插件。
答案 2 :(得分:1)
在我的Mac上,我必须打开postfix才能收到要发送的电子邮件。也许您没有打开能够发送电子邮件的类似邮件程序。那是什么,对于Windows 7,我不知道。