gpt4 book ai didi

ruby - 从电子邮件正文中删除标题字符

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:55 26 4
gpt4 key购买 nike

我正在使用 net::imap 和 mail ruby​​ gem。我想获取电子邮件正文,而不是标题。不幸的是,它正在返回带有正文的 header 信息:

require 'net/imap'
require 'mail'
imap = Net::IMAP.new('imap.gmail.com',993, true)
imap.login('user@gmail.com','password')
imap.select('INBOX')
imap.search(['SINCE', Time.now.strftime('%d-%b-%y')])
raw_message = imap.fetch(1,'RFC822').first.attr['RFC822']
message = Mail.read_from_string raw_message

message.body
=> #<Mail::Body:0x007fa3f4354e00 @boundary="94eb2c13d952954cbc053d82a0e7", @preamble="", @epilogue="", @charset="US-ASCII", @part_sort_order=["text/plain", "text/enriched", "text/html"], @parts=[#<Mail::Part:70171076755380, Multipart: false, Headers: <Content-Type: text/plain; charset=UTF-8>>, #<Mail::Part:70171076752140, Multipart: false, Headers: <Content-Type: text/html; charset=UTF-8>>], @raw_source="--94eb2c13d952954cbc053d82a0e7\r\nContent-Type: text/plain; charset=UTF-8\r\n\r\ntest body\r\n\r\n--94eb2c13d952954cbc053d82a0e7\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n<div dir=\"ltr\">test body</div>\r\n\r\n--94eb2c13d952954cbc053d82a0e7--", @encoding="7bit">
message.body.raw_source
=> "--94eb2c13d952954cbc053d82a0e7\r\nContent-Type: text/plain; charset=UTF-8\r\n\r\ntest body\r\n\r\n--94eb2c13d952954cbc053d82a0e7\r\nContent-Type: text/html; charset=UTF-8\r\n\r\n<div dir=\"ltr\">test body</div>\r\n\r\n--94eb2c13d952954cbc053d82a0e7--"

如何只获取正文?

最佳答案

那些不是邮件标题。那是 MIME邮件正文中的 header 。你有一个 multi-part email , 通常用于提供同一内容的文本和 HTML 版本。

每个部分都被视为另一个 Mail::Message 以单独处理。参见 Reading a Multipart Email .

mail = Mail.read('multipart_email')

mail.multipart? #=> true
mail.parts.length #=> 2
mail.body.preamble #=> "Text before the first part"
mail.body.epilogue #=> "Text after the last part"
mail.parts.map { |p| p.content_type } #=> ['text/plain', 'application/pdf']
mail.parts.map { |p| p.class } #=> [Mail::Message, Mail::Message]
mail.parts[0].content_type_parameters #=> {'charset' => 'ISO-8859-1'}
mail.parts[1].content_type_parameters #=> {'name' => 'my.pdf'}

关于ruby - 从电子邮件正文中删除标题字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39736096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com