1
私はimap-serverからfetchmailでダウンロードした電子メールを処理する小さなアプリケーションを持っています。この処理は、内部にXMLファイルがあるbase64でエンコードされた添付ファイルを見つけることから成ります。Ruby TMail本体のサイズ制限はありますか?
def extract_data_from_mailfile(mailfile)
begin
mail = TMail::Mail.load(mailfile)
rescue
return nil
end
bodies_found = []
if mail.multipart? then
mail.parts.each do |m|
bodies_found << m.body
end
end
## Let's parse the parts we found in the mail to see if one of them
## looks XML-ish. Hacky but works for now.
## was XML.
bodies_found.each do |body|
if body =~ /^<\?XML /i then
return body
end
end
return nil # Nothing found.
end
これは素晴らしい作品が、大きなXML-ファイル(通常は> 600Kメールファイル)、この休憩に:ここで
は(多少取り除か)コードです。>> mail.parts[1].body.size
=> 487424 <-- should have been larger - doesn't include the end of the file
Base64デコードは自動的には発生しません。しかし、これは手動でデコードを実行しようとしたときです。
>> Base64::decode64(mail.parts[1].body)
[...] ll="SMTP"></Sendt><Sendt"
これはXMLファイルの一部ですが、クリップされています。
添付ファイル全体を取得する方法はありますか?任意のヒント?