Ruby: net/smtp weirdness – to address can’t contain dash/hyphen (-)

This caused me a lot of grief and debugging time.

I am using code like this to send emails from a CGI script:

    Net::SMTP.start('', 25) do |smtp|
      smtp.open_message_stream('', ['']) do |f|
        f.puts 'From:'
        f.puts 'To:'
        f.puts 'Cc:'
        f.puts 'Subject: test message'
        f.puts 'This is a test message.'

and this is failing silent in my case.

I have discovered through trial and error that if I remove the -(dash) from the to address it works. Dashes in from or CC addresses does not matter.