Ruby: Mail gem add \ r \ n после 60 символов в почте - PullRequest
5 голосов
/ 12 июля 2011

Я хочу портировать actionmailer_x509 на Rails 3. Для этого я пытаюсь создать объект Mail из большой строки с подписанным письмом.

Такое создание можно увидеть в этой строке: https://github.com/petRUShka/actionmailer_x509/blob/master/lib/actionmailer_x509.rb#L129

Исходная строка ( smime0 ): https://gist.github.com/1d2c84cc2e255be010a6

Полученный почтовый объект выгружен в файл ( newm ): https://gist.github.com/4682fe88e8dcfeca60b2

Например, вы можете увидеть разницу между строкой 26 в smime0 и строкой 40 в newm smime0 \r\n устанавливается после каждых 64 символов, а в newm \r\n устанавливается после каждых 60 символов.

Такое поведение нарушает сигнатуру.Можно ли изменить это поведение?Я попытался выяснить, как его отключить, но не получилось.

Может быть, есть какой-то другой обходной путь для этой точки.

PS Mail gem: https://github.com/mikel/mail, нить собсуждение x509 и actionmailer: Как отправлять подписанные письма от ActionMailer в Rails 3?

1 Ответ

3 голосов
/ 28 июля 2011

Возврат каретки не должен быть проблемой, потому что парсер будет знать, что он закодирован в base64 (и отбросит \r\n).

Я думаю, что ошибка исходит от Content-id . Я вижу, что в ваших примерах почты newm добавляет поле Content-ID и изменяет подписанное сообщение (попробуйте удалить строку Content-ID и проверить сообщение).

Возможные обходные пути:

  • Исправьте самоцвет Mail, чтобы он не мог добавить Content-ID
  • Добавьте Content-ID перед подписью, поскольку Mail сохранит его, если он присутствует
...