result = message - это не создание нового объекта, соответственно, result.recipient = message.recipient.join(',') перетрет message.recipient. Думаю, лучше это сделать в lib/mail_sandbox/message.rb:
 def to_a
      {
        :password => password,
        :user => user,
        :recipients => recipients.join(','),
        :sender => sender,
        :completed_at => completed_at,
        :data => data.join("\r\n"),
      }
    end