class Mailman < ActionMailer::Base def receive(email) page = Page.find_by_address(email.to.first) page.emails.create( :subject => email.subject, :body => email.body ) if email.has_attachments? for attachment in email.attachments page.attachments.create({ :file => attachment, :description => email.subject }) end end end end what does this line do... def receive(email) page = Page.find_by_address(email.to.first) page.emails.create( :subject => email.subject, :body => email.body ) Look like it can''t work at all -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
On 29 May 2008, at 10:05, Emmie Wawa wrote:> > > what does this line do... > > def receive(email) > page = Page.find_by_address(email.to.first) > page.emails.create( > :subject => email.subject, :body => email.body > )Which part isn''t working? if Page. find_by_address is returning nil, have you compared what''s in the database with what''s in the email (bearing in the mind that the email will probably have something like "Fred blogs <fred-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org>" whereas your database might only have fred-hcDgGtZH8xNBDgjK7y7TUQ@public.gmane.org . Fred> > > Look like it can''t work at all > -- > Posted via http://www.ruby-forum.com/. > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
receive is a class method in ActionMailer::Base that processes incoming mail. What you usually do is pipe contents of the email, as a string, from your mailing process to the receive method which automatically converts it to a Tmail object. This is the example for Rails Way (modified slightly to match your class name) to listen for incoming mail: ./script/runner ''Mailman.receive(STDIN.read)'' On May 29, 2008, at 5:05 AM, Emmie Wawa wrote:> > class Mailman < ActionMailer::Base > def receive(email) > page = Page.find_by_address(email.to.first) > page.emails.create( > :subject => email.subject, :body => email.body > ) > > if email.has_attachments? > for attachment in email.attachments > page.attachments.create({ > :file => attachment, :description => email.subject > }) > end > end > end > end > > what does this line do... > > def receive(email) > page = Page.find_by_address(email.to.first) > page.emails.create( > :subject => email.subject, :body => email.body > ) > > Look like it can''t work at all > -- > Posted via http://www.ruby-forum.com/. > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Actually these code is not working if email.has_attachments? for attachment in email.attachments page.attachments.create({ :file => attachment, :description => email.subject }) end So i change the code to if email.has_attachments? email.attachments.each do |attachment| # save original file File.open("C:/rubydev1/mail7/log/" + base_part_of(attachment.original_filename) ,File::CREAT|File::TRUNC|File::WRONLY,0666){ |f| f.write(attachment.read) f.close() } end end And these code work fine, it did help me read the attachment file and save it into the ruby directory. Then now i want to retrieve hte email header such as the receiver, the senter, subject and date. It is possible. Thanks -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---