2009-09-16 4 views
0

Я хочу хранить электронные письма в базе данных, а затем правильно отображать их в Ruby on Rails (в идеале с хорошо отформатированным, складным заголовком, поддержкой вложений и т. Д.). Есть ли хороший способ сделать это?Показать электронную почту Ruby on Rails

В настоящее время я храню электронные письма в базе данных в виде текста, но я изо всех сил стараюсь показать их пользователю на странице рельсов?

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

Заранее благодарен!

ответ

2

Возможно, вы захотите ознакомиться с библиотекой 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 

Что касается хранения почты идет: Mails может содержат символы, отличные от ASCII, поэтому, возможно, вам нужно убедиться, что тип столбца, выбранный для raw_mail ActiveRecord, действительно способен обрабатывать эти данные. Я думаю, :binary - хороший выбор.

Смежные вопросы