Rails - 如何在不触发Net :: SMTPFatalError的情况下使用完整的电子邮件地址?

Ala*_*n S 5 ruby-on-rails actionmailer

我是rails的新手,并使用rails-2.3.5和ruby-1.8.7.这是我的notifier.rb模型:

# app/models/notifier.rb
class Notifier < ActionMailer::Base
  default_url_options[:host] = "foo.com"  

  #This method sends an email with token to users who request a new password
  def password_reset_instructions(user)  
    subject       "Password Reset Instructions"  
    from          "Support Team<support@foo.com>"  
    recipients    user.email  
    sent_on       Time.now  
    body          :edit_password_reset_url => 
                   edit_password_reset_url(user.perishable_token)  
  end  
end
Run Code Online (Sandbox Code Playgroud)

当我调用此方法时,我收到以下错误:

Net::SMTPFatalError in Password resetsController#create
555 5.5.2 Syntax error. 36sm970138yxh.13
Run Code Online (Sandbox Code Playgroud)

我发现一篇文章说这个问题是ruby-1.8.4中的一个错误,修复方法是从:from字段中删除尖括号.果然,如果我只使用"support@foo.com"代替"支持团队<support@foo.com>",一切正常.

但是,在rails-2.3.5 API或ActionMailer Basics rails指南中没有引用此问题,实际上它们在其actionmailer设置示例中都显示"name <mail address>".谁知道我做错了什么?

Tra*_*der 0

Rails/ActionMailer 打破了这一点:

https://rails.lighthouseapp.com/projects/8994/tickets/2340

由于像这样的关键错误在 Rails 项目中没有得到高优先级或临时版本来修复它们,因此您要么必须自己修补它,要么等待很长的时间才能修复它。就像 Rails 2.3.4 中出现的这个严重错误一样,它使 Rails 完全无法用于 Ruby 1.9:https://rails.lighthouseapp.com/projects/8994/tickets/3144-undefined-method-for-string-ror -234。花了几个月的时间才解决这个问题。