I am working on a script that will send an email with a .csv file
attachment.  I can get everything set correctly, and the email gets
sent properly. The problem is with the attachments.  This maybe a MIME
thing instead of something wrong with my script.  My script is based
on an example from Hal Fulton's The Ruby Way book. If anyone has any
suggestions or see something I did wrong I would greatly appreciate
it.  Below is my script.  Below that is what the email I receive looks
like.

Thanks!

***Begin Script***

require 'time'
require 'net/smtp'
require 'date'

##################################################################
#  This portion of the code assembles the filenames of the files #
#  to be attached in the email                       #
##################################################################

time = Time.now            #set time object to the current time
month = time.month         #grab the number of the month from the
current time
day = time.day             #grab the day of the current time
year = time.year           #grab the year of the current time

month = month + 1          #to match the format of Ian's file names

if month < 10               #formatting
  fullmonth = "0" + month.to_s
else
  fullmonth = month.to_s
end

if day < 10
  fullday = "0" + day.to_s
else
  fullday = day.to_s
end                       #end of formatting

filename1 = "pagecount-" + year.to_s + fullmonth +  fullday + ".csv"
#assemble file name

#####################################
#  Attach files and send the email #
####################################

def text_plus_attachment (subject, body, filename)
  marker = "MIME_boundary"
  middle = "--#{marker}\n"
  ending = "--#{middle}--\n"
  content = "Content-Type: Multipart/Related; " + "boundary=#{marker};
" + "typw=text/plain"
  head1 = <<-EOF
  MIME-Version: 1.0
  #{content}
  Subject: #{subject}
  EOF
  binary = File.read(filename)
  encoded = [binary].pack("m")    # base64 econding
  head2 = <<-EOF
  Content-Description:  "#{filename}"
  Content-Type: text/plain; name="#{filename}"
  Content-Transfer-Encoding: Binary
  Content-Disposition: attachment; filename="#{filename}"

  EOF

  #Return

  head1 + middle + body + middle + head2 + encoded + ending

end

body = <<EOF
The GFIFax Monthly report is attached.
EOF

mailtext = text_plus_attachment("Monthly Report", body,
filename1)

Net::SMTP.enable_tls(OpenSSL::SSL::VERIFY_NONE)
Net::SMTP.start('smtp.xxx.xxx', '25', 'umr.edu', 'xx... / xxx.xxx',
'xxx', :plain) do |smtp|
  smtp.sendmail(mailtext, 'xxx / xxx.xxx', ['xxx / xxx.xxx'])
end

***End Script***

***Begin Email results*** (This is all in the body of the email
instead of in the headers)

  MIME-Version: 1.0
  Content-Type: Multipart/Related; boundary=MIME_boundary; typw=text/
plain
  Subject: GFIFax Service Monthly Report --MIME_boundary The GFIFax
Monthly report is attached.
--MIME_boundary
  Content-Description:  "pagecount-20070631.csv"
  Content-Type: text/plain; name="pagecount-20070631.csv"
  Content-Transfer-Encoding: Uencode
  Content-Disposition: attachment; filename="pagecount-20070631.csv"

M4V5N="!&87AE<RPL+`I5<V5R240L(%!A9V5S(%-E;G0L($QI;6ET+"!/=F5R
M86=E"C4W,S(P,C(Q,30L,BPU,"PP"C4W,S(P,C(Q,34L-"PU,"PP"C4W,S,T
M,3<X-#8L,2PU,"PP"@H*4F5C96EV960@1F%X97,L+"P*57-E<DE$+%!A9V5S
M(%)E8V5I=F5D+"!,:6UI="P@3W9E<F%G90HU-S,S-#$V,C,S+#$R+#$P,"PP
M"C4W,S(P,C(Q,30L,RPQ,#`L,`HU-S,S-#$T.#@Y+#(Q.2PQ,#`L,3$Y"C4W
M,S,T,38R-S$... / L.3DY.2PP"C4W,S(P,C(S.3(L,C`U+#DY.3DL,`HU-S,R
E,#(R,SDW+#4T+#DY.3DL,`HU-S,R,#(R,SDV+#$Q+#$P,"PP"@``
----MIME_boundary
--

**End Email**'

I hope someone can help me out!

Thanks!