メールを取得してDBに保存するために使用しているコードは次のとおりです。
emails = imap.search([fp.filter_type, "#{fp.value}"])
emails.each do |message_id|
msg = imap.fetch(message_id,'RFC822')[0].attr['RFC822']
mail = Mail.read_from_string msg
Email.create({
:user_id => self.id,
:message_id => message_id.to_s,
:email_from => mail.from[0],
:subject => mail.subject,
:content => mail.multipart? ? mail.html_part : mail.body.decoded,
:sent_at => mail.date
}) if !Email.find_by_message_id(message_id.to_s)
end
メール レコードのコンテンツをレンダリングすると、正しく表示されません。しかし、メールは私の GMail アカウントでは見栄えがします。正しい HTML を保存し、メール アカウントで表示されるように表示する方法が必要です。また、これらのメールからデータを解析する必要がありますが、これは DOM 構造がめちゃくちゃになるため難しい作業です。