Open macedo opened 12 years ago
I am having the same problem under ruby 1.9.3
Can you post a code example? And can you upgrade and try the newest gem version?
I am also having this issue on Ruby 1.9.3 using 0.3.0.
folder = "/home/refriedchicken/downloads" Gmail.new('username','password') do |g| g.inbox.emails(:unread, :from => "noreply@dropbox.com").each do |e| if !e.message.attachments.empty? e.message.save_attachments_to(folder) e.mark(:read) e.archive! end end end
NoMethodError: undefined method message' for #<Mail::Message:0x0000000273f800> from /home/refriedchicken/.rvm/gems/ruby-1.9.3-p374/gems/mail-2.5.3/lib/mail/message.rb:1289:in
method_missing'
from /home/refriedchicken/.rvm/gems/ruby-1.9.3-p374/gems/ruby-gmail-0.3.0/lib/gmail/message.rb:101:in method_missing' from (irb):30:in
block (2 levels) in irb_binding'
from (irb):29:in each' from (irb):29:in
block in irb_binding'
from /home/refriedchicken/.rvm/gems/ruby-1.9.3-p374/gems/ruby-gmail-0.3.0/lib/gmail.rb:24:in initialize' from (irb):28:in
new'
from (irb):28
from /home/refriedchicken/.rvm/rubies/ruby-1.9.3-p374/bin/irb:13:in `
Hi,
I solved with code below. The ruby version is ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.2.0]
File.open(File.join("imgs", file.filename), "w+b", 0644 ) { |f| f.write file.body.decoded }
Thank's
I am too face the same problem. I have using ruby 2.0.0-p247 and ruby-gmail-0.3.0. Any work around?
I got the same problem, it appears the save_attachments_to method doesnt exist or has been deprecated by the mail gem. I was able to handle my attachments like so
message.attachments.each do |attachment| File.open("/home/rcho/Downloads/#{attachment.filename}", "w+b", 0644) { |f| f.write attachment.body.decoded } end
source: https://github.com/mikel/mail#testing-and-extracting-attachments
Seems that in version 0.3.0 author made method 'message' private. At master I see that this method is public, so I assume that it was done mistakenly. For fast fixing this we can use send: g.inbox.emails(:unread, :from => "noreply@dropbox.com").each do |e| e.send(:message).save_attachments_to(folder) end
@rcho's method doesn't work for me, which makes sense since it's still relying on the message method. I had no better results using emails.send(:message).save_attachments_to(folder). I get undefined method `save_attachments_to' for #Mail::Message:0x00000101469608
@Dreyfuzz @dolgishev I've merged a PR that updated the README. Can you try to save the attachments manually?
The #save_attachments_to method was very out of date and the new example should work.
I get this error when i try to download attachments from any email. I've alredy try ruby 1.9.2 and 1.8.7.