Ich benutze net :: imap und mail Ruby gem. Ich möchte den Text des E-Mail-Nachrichtentextes erhalten, aber nicht die Header. Leider gibt es die Header-Informationen mit dem Körper zurück:Entfernen Header-Zeichen aus E-Mail-Körper
require 'net/imap'
require 'mail'
imap = Net::IMAP.new('imap.gmail.com',993, true)
imap.login('[email protected]','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--"
Wie bekomme ich nur den Textkörper?
haben Sie versucht "message.body.decoded"? – davidhu2000
@ davidhu2000 ja und das decodiert hat nichts anders gemacht – Donato