Question

Je dois changer le sujet des e-mails à un faible niveau. Qu'est-ce que les rails n'encode le sujet tel que cité dans l'encodage choisi est réglé. Ce que je dois faire est de cité, mais divisé en morceaux de 64 octets, comme hotmail ne va pas vraiment avec les normes: /

Comment puis-je dire des rails pour prendre le sujet comme il est?

Était-ce utile?

La solution

J'ai eu un coup d'œil à ce que suite à ma réponse à la question précédente. Le problème est lié à tmail. Il automatiquement et supprime les retours chariot du sujet. J'ai créé le patch de singe suivant comme il semble être la seule solution pour arrêter le comportement de 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

Si vous incluez dans le logiciel de messagerie dans Rails 2.3.x il devrait fonctionner. Sinon, vous voudrez peut-être regarder http://github.com/mikel/mail/ qui est le logiciel de messagerie par défaut dans Rails 3?

Vous pouvez ensuite définir l'en-tête avant de coder comme la réponse précédente a montré.

Autres conseils

"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"]

Je l'ai fait à 16 caractères, voici un lien vers le document http://www.ruby-doc.org/core/classes/String.html#M000812

HTH

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top