· 8 years ago · Jan 23, 2018, 04:42 AM
1## Rails 3 mailer
2
3require 'net/pop'
4
5class UserMailer < ActionMailer::Base
6 def receive(email)
7 task = Task.new[:name => email.subject, :description => email.body]
8 task.save
9 if email.has_attachments?
10 email.attachments.each do |attachment|
11 task.assets.create :data => attachment
12 end
13 end
14 end
15
16 def self.check_mail
17 logger = RAILS_DEFAULT_LOGGER
18
19 logger.info "Checking for emails..."
20 Net::POP3.enable_ssl(OpenSSL::SSL::VERIFY_NONE) #This line raises error if ruby version < 1.8.7
21 Net::POP3.start("pop.gmail.com", 995, "###@gmail.com", "###") do |pop|
22 if pop.mails.empty?
23 logger.info "No emails found."
24 else
25 pop.mails.each do |email|
26 begin
27 logger.info "Retrieving mail..."
28 UserMailer.receive(email.pop)
29 email.delete
30 rescue Exception => e
31 logger.error "[" + Time.now.to_s + "] " + e.message
32 end
33 end
34 end
35 end
36 logger.info "Done."
37 end
38end