I think we have Rex::MIME::Message to do multipart messages.