Actions
Patch #2420
closedFetching emails from an POP server
Start date:
2008-12-30
Due date:
% Done:
0%
Estimated time:
Description
This is a patch to fetch emails from POP server instead of IMAP (based on IMAP handling code)
Copy attahced pop3.rb into lib\redmine directory
require 'net/pop'
module Redmine
module POP3
class << self
def check(pop_options={}, options={})
host = pop_options[:host] || '127.0.0.1'
port = pop_options[:port] || '110'
pop = Net::POP3.new(host,port)
pop.start(pop_options[:username], pop_options[:password]) do |pop_session|
pop_session.each_mail do |msg|
message = msg.pop
logger.debug "Receiving message: #{message.grep(/^Subject: /)}" if logger && logger.debug?
if MailHandler.receive(message, options)
logger.info "Message #{message.grep(/^Subject: /)} processed -- removing from server." if logger && logger.info?
puts "#{message.grep(/^Subject: /)}"
puts "--> Message processed and deleted from the server"
msg.delete
else
puts "#{message.grep(/^Subject: /)}"
puts "--> Message NOT processed -- leaving it on the server"
logger.info "ERROR: Message #{message.grep(/^Subject: /)} can not be processed, leaving on the server." if logger && logger.info?
end
end
end
end
private
def logger
RAILS_DEFAULT_LOGGER
end
end
end
end
and add the new task to email.rake file in lib\tasks
task :receive_pop => :environment do
pop_options = {:host => ENV['host'],
:port => ENV['port'],
:username => ENV['username'],
:password => ENV['password']}
options = { :issue => {} }
%w(project status tracker category priority).each { |a| options[:issue][a.to_sym] = ENV[a] if ENV[a] }
options[:allow_override] = ENV['allow_override'] if ENV['allow_override']
Redmine::POP3.check(pop_options, options)
end
Files
Actions