In the example program 'mail1.rb' no mail body is generated.
If the line 3 with line 4 interchanged as in example 'mail2.rb' then a mail body is generated.
================================mail1.rb example================================
----------[Start of source code mail1.rb]----------
require 'mail'
mail_handler = Mail.new()
mail_handler.body = 'mail body text'
mail_handler.attachments['test.bin'] = { :content => 'test.bin - text' }
print mail_handler.to_s
----------[End of source code mail1.rb]----------
----------[Start of execution mail1.rb]----------
kro44@peter4 14:04:58 /Volumes/common/developm/ruby/ruby/sendmail/ruby $ ruby mail1.rb
Date: Fri, 11 Jul 2014 14:05:05 +0200
Message-ID: <53bfd2f1165d5_47...@peter4.fritz.box.mail>
Mime-Version: 1.0
Content-Type: multipart/mixed;
boundary="--==_mimepart_53bfd2f116196_47d3fc6ae05e47013541";
charset=UTF-8
Content-Transfer-Encoding: 7bit
----==_mimepart_53bfd2f116196_47d3fc6ae05e47013541
Content-Type: application/x-mac;
charset=UTF-8;
filename=test.bin
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename=test.bin
Content-ID: <53bfd2f117134_47d...@peter4.fritz.box.mail>
dGVzdC5iaW4gLSB0ZXh0
----==_mimepart_53bfd2f116196_47d3fc6ae05e47013541--
----------[End of execution mail1.rb]----------
================================mail2.rb example================================
----------[Start of source code mail2.rb]----------
require 'mail'
mail_handler = Mail.new()
mail_handler.attachments['test.bin'] = { :content => 'test.bin - text' }
mail_handler.body = 'mail body text'
print mail_handler.to_s
----------[End of source code mail2.rb]----------
----------[Start of execution mail2.rb]----------
kro44@peter4 14:04:49 /Volumes/common/developm/ruby/ruby/sendmail/ruby $ ruby mail2.rb
Date: Fri, 11 Jul 2014 14:04:55 +0200
Message-ID: <53bfd2e77bc43_47b...@peter4.fritz.box.mail>
Mime-Version: 1.0
Content-Type: multipart/mixed;
boundary="--==_mimepart_53bfd2e77b82d_47b3fe17485e4648931e";
charset=UTF-8
Content-Transfer-Encoding: 7bit
----==_mimepart_53bfd2e77b82d_47b3fe17485e4648931e
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
mail body text
----==_mimepart_53bfd2e77b82d_47b3fe17485e4648931e
Content-Type: application/x-mac;
charset=UTF-8;
filename=test.bin
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename=test.bin
Content-ID: <53bfd2e77c988_47b...@peter4.fritz.box.mail>
dGVzdC5iaW4gLSB0ZXh0
----==_mimepart_53bfd2e77b82d_47b3fe17485e4648931e--
----------[End of execution mail2.rb]----------