Action mailer

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

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@example.com>" whereas your database might only have fred@example.com .

Fred

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)'

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