使用 ruby 的 Net::IMAP 库时邮件正文不包含 returns(\n)
body of mail doesn't contain returns(\n) when using ruby's Net::IMAP library
我正在使用 Ruby 的 Net::IMAP 库来获取邮件并正在使用 Mail gems read_from_string 函数来获取正文,但是发生的是邮件包含 html 部分显示正确,但只有 text/plain 部分连续显示,没有任何 return 字符,即使原始邮件有它们......请提出一些建议......提前感谢!
我的代码:
Fetching the mail (I already have the uid)
email = @imap.uid_fetch(uid, ["BODY[HEADER.FIELDS (FROM TO DATE SUBJECT)]", "RFC822"])
Extracting Headers and the body
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)
Checking for multipart
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,但它没有给出正确的输出:(
content type of a mail
内容类型:text/plain;
字符集="iso-8859-1"
内容传输编码:8bit
正如@BoraMa 在上面的评论中所指出的,我只需要在我的视图中使用 simple_format(@body) 来显示 body
我正在使用 Ruby 的 Net::IMAP 库来获取邮件并正在使用 Mail gems read_from_string 函数来获取正文,但是发生的是邮件包含 html 部分显示正确,但只有 text/plain 部分连续显示,没有任何 return 字符,即使原始邮件有它们......请提出一些建议......提前感谢!
我的代码:
Fetching the mail (I already have the uid)
email = @imap.uid_fetch(uid, ["BODY[HEADER.FIELDS (FROM TO DATE SUBJECT)]", "RFC822"])
Extracting Headers and the body
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)
Checking for multipart
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,但它没有给出正确的输出:(
content type of a mail
内容类型:text/plain; 字符集="iso-8859-1" 内容传输编码:8bit
正如@BoraMa 在上面的评论中所指出的,我只需要在我的视图中使用 simple_format(@body) 来显示 body