0

Ruby の Net::IMAP lib を使用してメールを取得し、Mail gems の read_from_string 関数を使用して本文を取得していますが、html 部分を含むメールは正しく表示されますが、テキスト/プレーン部分のみを含むメールは返されることなく継続的に表示されます。元のメールに文字が含まれていても...何か提案してください...よろしくお願いします!

私のコード:

メールの取得 (既に uid を持っています)

    email = @imap.uid_fetch(uid, ["BODY[HEADER.FIELDS (FROM TO DATE SUBJECT)]", "RFC822"])

ヘッダーと本文の抽出

header_attr = email[0].attr["BODY[HEADER.FIELDS (FROM TO DATE SUBJECT)]"]
header      = Mail.read_from_string(header_attr)
message_attr = email[0].attr["RFC822"]
message      = Mail.read_from_string(message_attr)

マルチパートのチェック

if message.multipart?
  @body = message.text_part.decoded.force_encoding("UTF8").encode("UTF-8")
else
  @body = message.body.decoded.force_encoding(message.charset).encode("UTF-8")
end

ビューで @body.to_s を使用していますが、正しい出力が得られません:(

メールのコンテンツタイプ

コンテンツ タイプ: テキスト/プレーン。charset="iso-8859-1" Content-Transfer-Encoding: 8bit

4

1 に答える 1

0

上記のコメントで @BoraMa が指摘したように、ビューで simple_format(@body) を使用して本文を表示する必要がありました

于 2016-04-12T07:29:16.767 に答える