Взять под контроль тему электронной почты в рельсах - PullRequest
0 голосов
/ 26 августа 2010

Мне нужно сменить тему писем на низкий уровень. То, что делает rails, это кодирование субъекта, как указано в любой установленной кодировке. Мне нужно сделать так, чтобы оно было заключено в кавычки, но разбито на куски по 64 байта, поскольку hotmail не соответствует стандартам:

Как мне сказать рельсам, чтобы они воспринимали объект как есть?

Ответы [ 2 ]

1 голос
/ 26 августа 2010

Я посмотрел на это как продолжение моего ответа на предыдущий вопрос.Проблема заключается в TMail.Он автоматически удаляет и возврат каретки от субъекта.Я создал следующий патч обезьяны, так как он кажется единственным решением для остановки поведения TMail.

module TMail
  class SubjectHeaderField < UnstructuredHeader
    def parse
      #Do nothing
    end
  end

  class HeaderField
    FNAME_TO_CLASS = FNAME_TO_CLASS.merge('subject' => SubjectHeaderField)
  end
end

Если вы включите его в почтовую программу в Rails 2.3.x, она должна работать.В качестве альтернативы вы можете посмотреть на http://github.com/mikel/mail/, который является почтовым приложением по умолчанию в Rails 3?

Затем вы можете установить заголовок перед кодированием, как показано в предыдущем ответе.

1 голос
/ 26 августа 2010
"This is a very very long subject line of an email that hotmail has problems processing".scan(/.{1,16}/)
#=> ["This is a very v", "ery long subject", " line of an emai", "l that hotmail h", "as problems proc", "essing"]

Я сделал это за 16 символов, вот ссылка на документ http://www.ruby -doc.org / core / classes / String.html # M000812

HTH

...