Programmatically adding an Excel attachment

I've checked out this page --> http://www.tutorialspoint.com/ruby/ruby_sending_email.htm
that shows how to e-mail a text file attachment.I'm trying to attach
an Excel file, but the receiver gets a corrupted file attachment. I've
changed the Content-Type: in the MIME header to application/vnd.ms-
excel but it doesn't seem to work. Anyone care to offer a quick code
snippet that will fit the bill?

I solved my own problem. It was just a question of me not parsing the
Excel file correctly. Since I was basing things off sample code that
opened plain text files to send as attachments, I wasn't building the
attachment properly. Here's a snipped of my little routine. Works like
a champ, and I didn't have to install ActionMailer or any other module
since I cobbled the code together manually. It will fit the bill!

Code is below if anyone runs into a similar quandary.

ยทยทยท

On Jan 15, 4:23 pm, gregarican <greg.kuj...@gmail.com> wrote:

I've checked out this page -->Sending Email using Ruby - SMTP
that shows how to e-mail a text file attachment.I'm trying to attach
an Excel file, but the receiver gets a corrupted file attachment. I've
changed the Content-Type: in the MIME header to application/vnd.ms-
excel but it doesn't seem to work. Anyone care to offer a quick code
snippet that will fit the bill?

-----------------------------------

# Read a file and encode it into base64 format
savedDoc = path+filename
file = File.open(savedDoc, 'rb')
filecontent = file.read()
encodedcontent = [filecontent].pack("m*") # base64

marker = "AUNIQUEMARKER"

body =<<EOF
Attached is your Excel spreadsheet!
EOF

# Define the main headers.
part1 =<<EOF
From: Me <me@foo.com>
To: You <you@foo.com>
Subject: Message with Excel Attachment
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=#{marker}
--#{marker}
EOF

# Define the message action
part2 =<<EOF
Content-Type: text/plain
Content-Transfer-Encoding: 8bit

#{body}
--#{marker}
EOF

# Define the attachment section
part3 =<<EOF
Content-Type: application/vnd.ms-excel; name=\"#{filename}\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="#{filename}"
Content-Description: "#{filename}"

#{encodedcontent}
--#{marker}--
EOF

mailtext = part1 + part2 + part3

# Let's put our code in safe area
begin
  Net::SMTP.start(server=localhost, port=25) do |smtp|
     smtp.sendmail(mailtext, 'me@foo.com', 'you@foo.com')
  end
rescue Exception => e
  print "Exception occured: " + e
end