Направляющие - Как, я использую полные адреса электронной почты, не инициировав Сеть:: SMTPFatalError?

Я плохо знаком с направляющими и направляющими использования 2.3.5 и рубиновыми 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

Когда я называю этот метод, я получаю следующую ошибку:

Net::SMTPFatalError in Password resetsController#create
555 5.5.2 Syntax error. 36sm970138yxh.13

Я нашел статью, в которой было сказано, что проблемой была ошибка в рубиновых 1.8.4 и что фиксация должна удалить угловые скобки из: от поля. Конечно же, если я просто использую "support@foo.com" вместо "Поддержки Team<support@foo.com>", все хорошо работает.

Однако нет никакой ссылки на эту проблему или в направляющих 2.3.5 API или в руководстве направляющих Основ ActionMailer, и на самом деле оба шоу "имя <почтовый адрес>" в их примерах установки actionmailer. Кто-либо знает то, что я делаю неправильно?

5
задан Lance Roberts 22 February 2010 в 16:59
поделиться

2 ответа

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- строка-рор-234 . Потребовались месяцы, чтобы исправить это.

0
ответ дан 15 December 2019 в 06:24
поделиться

Судя по тикету, на который ссылался Трэвис, похоже, что вы можете возможно, избежать проблемы с помощью:

  def password_reset_instructions(user)  
    subject       "Password Reset Instructions"  
    from          "Support Team<support@foo.com>"  
+   headers       "return-path" => 'support@foo.com'
    recipients    user.email  
    sent_on       Time.now  
    body          :edit_password_reset_url => 
                   edit_password_reset_url(user.perishable_token)  
  end  

В противном случае вы можете получить один из патчей, указанных в заявке, или дождаться 2.3.6 или 3.x

3
ответ дан 15 December 2019 в 06:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: