Problem reading attachments in emails

I read the attachments in an email in the following manner:

def receive(email)
base_dir=“d:\temp\attachments”
if email.has_attachments?
email.attachments.each do |a|
filename=a.original_filename
File.open(base_dir+"\"+filename,“w+”) { |f|
puts f.syswrite(a.read) # i tried f.write also
}
end # end of attachments
end # end if
end # end def

The attachments are pdf files,images,.doc,.xls files.
The problem now is the size of the files stored on the file system is
the same as that of the attachment. But the data that gets written to
the file is junk. Obviously i need to decode the content of the
attachment. Any suggestion.

I did try to read the parts of the mail as described in the post:
http://blog.mondragon.cc/articles/2006/12/30/decoding-email-attachments-with-actionmailer-base-receive
but in this case, only 2 kb of data gets written

Any suggestions?

Phew! Panicked too soon i guess, i figured what was wrong!
Since the attachments were binary files, the mode should have been
“wb”.
After changing the mode, it works perfectly fine.

File.open(base_dir+"\"+filename,“wb”)

/Ramya

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs