3

私は griddler と sendgrid を使用して Rails アプリにメールを受信して​​いますが、email.body をレンダリングすると、実際の html スタイルのメールではなく、メール内のテキストのみが取得されます。私は使用<%= raw post.body %>し、まだ同じものを手に入れます。電子メールの本文を取り除いて電子メールのテキストのみをレンダリングするのではなく、Gmail や Yahoo で表示されるように、HTML バージョンを電子メールの本文でレンダリングする方法についてのアイデアはありません。Rails 4、Sendgrid、および Griddler Gem を使用しています。

電子メールを処理するための私の email_processor.rb ファイル:

class EmailProcessor
  def self.process(email)
  Post.create!({ body: email.body, email: email.from })
  end
end

index.html.rb

<h1>Posts</h1>

<% if @posts.count > 0 %>
  <% @posts.each do |post| %>
    <blockquote>
      <p><%= raw post.body %></p>
      <small><%= post.email %></small>
    </blockquote>
  <% end %>
<% else %>
  <p><em>Oops, doesn't look like there are any posts yet.</em></p>
<% end %>
4

1 に答える 1

2

を呼び出す代わりにemail.body、おそらく を呼び出す必要がありますemail.raw_html。これが機能しない場合は、Griddler のドキュメントで提案されています

アダプター

Griddler::Email は、適切な解析が行われるように特定のパラメーターが配置されていることを期待しています。アダプターを作成するときは、アダプターの normalized_pa​​rams メソッドが次のキーを含むハッシュを返すことを確認してください。

:html 電子メールの HTML 本文、存在しない場合は nil または空の文字列

于 2013-10-05T01:07:31.183 に答える