Возможно, вы захотите взглянуть на библиотеку TMail , которая поставляется с направляющими (и может обновляться самостоятельно).Предположим, у вас есть модель с именем Message
, которая соответствует таблице, содержащей письма, и что атрибут / столбец с именем raw_mail
содержит необработанный текст письма.
Затем можно создать экземпляр объекта TMAil::Mail
и работайте с ним так:
@email = TMail::Mail.parse(Message.find(params[:id]).raw_mail)
Это обеспечивает, например,:
@email.body # => Dear NoahD, how are you? I'm fine...
@email.subject # => Hello from New Zealand
@email.has_attachment? #=> true
@email.attachments.first.original_filename # => kiwi.jpg
Что касается хранения почты: письма могут содержать не-ASCII символы, поэтомувозможно, вам нужно убедиться, что тип столбца, выбранный для raw_mail
ActiveRecord, действительно способен обрабатывать эти данные.Я думаю, :binary
хороший выбор там.