Hello, Take a look at this: http://www.akadia.com/services/email_attachments_using_perl.html and compare with what you get. I'd say your output is pretty different. Anyway, I'd use Ruby-Mail or ActionMailer http://rubyforge.org/projects/rubymail/ http://rubyforge.org/projects/actionmailer/ -- Pau Garcia i Quiles http://www.elpauer.org (Due to the amount of work, I usually need 10 days to answer) Quoting grooveska <ryangs / mac.com>: > 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', 'xxx.xxx', 'xx... / xxx.xxx', > 'xxx', :plain) do |smtp| > smtp.sendmail(mailtext, '... / 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! > > >