# Does TMail support nested multipart messages?

**URL:** <https://www.ruby-forum.com/t/does-tmail-support-nested-multipart-messages/61358>\
**Category:** Ruby\
**Created:** [May 23, 2006, 2:21pm UTC](https://www.ruby-forum.com/t/does-tmail-support-nested-multipart-messages/61358 "2006-05-23T14:21:27Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mariano\_K](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/eada6e/32.png) [@Mariano\_K](https://www.ruby-forum.com/u/Mariano_K)\
**Post date:** [May 23, 2006, 2:21pm UTC](https://www.ruby-forum.com/t/does-tmail-support-nested-multipart-messages/61358/1 "2006-05-23T14:21:27Z")

</div>

Hi,

does anybody know if TMail supports multipart messages?

I am using TMail at the moment, but it doesn’t seem to work for me.  
Maybe  
I am doing something wrong here?

I attached the sample and below is the code. The output looks like  
this:

body=!Hi,

I have the following code:  
@conversation\_pages,  
@conversations = paginate(:conversations,  
:per\_page =\> 20,  
:joins =\> 'LEFT JOIN messages on  
messages.conversation\_id = conversations.id '+  
‘LEFT JOIN email\_addresses  
on  
email\_addresses.id = messages.email\_address\_id’,  
:conditions =\>  
['email\_addresses.emai\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_  
Rails mailing list  
removed\_email\_address@domain.invalid  
[http://lists.rubyonrails.org/mailman/listinfo/rails](http://lists.rubyonrails.org/mailman/listinfo/rails)

!

So the message is broken off at some point, arbitrary to me.  
Cheers,  
Mariano

require File.dirname( **FILE** ) + ‘/…/test\_helper’

class TMailTest \< Test::Unit::TestCase

def test\_multiparts  
assert raw = File.read(“sample”)  
assert mail = TMail::Mail.parse(raw)  
puts “body=!#{body\_as\_plain\_text(mail)}!”  
end

def body\_as\_plain\_text(part)  
body = ‘’  
if part.multipart?  
part.parts.each do |subpart|  
if subpart.content\_type == ‘text/plain’ and  
subpart.content\_disposition == ‘inline’  
body \<\< subpart.body  
elsif subpart.content\_type =~ /^multipart/  
body \<\< body\_as\_plain\_text(subpart)  
end  
end  
else  
body = part.body  
end  
body  
end  
end
