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