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
Updated by dct abuyz over 16 years ago
this helps to fetch emails also from apop
lib/redmine/pop3.rb
module Redmine
module POP3
class << self
def check(pop_options={}, options={})
host = pop_options[:host] || '127.0.0.1'
port = pop_options[:port] || '110'
+ apop = pop_potions[:apop] || false
- pop = Net::POP3.new(host,port)
+ pop = Net::POP3.APOP(apop).new(host,port)
...
lib/tasks/email.rake
task :receive_pop => :environment do
pop_options = {:host => ENV['host'],
:port => ENV['port'],
+ :apop => ENV['apop'],
: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
Updated by Jean-Philippe Lang almost 16 years ago
- Category changed from Email notifications to Email receiving
Updated by Mélanie Gault almost 16 years ago
very interested for this functionality too!
Updated by Jeffrey Jones almost 16 years ago
Definite +1 for this issue to be rolled into the core. My company only allows POP3 accounts for some reason so this is essential
Updated by Jean-Philippe Lang almost 16 years ago
- Status changed from New to Closed
- Target version set to 1.0.0 (RC)
Feature added in r3330.
Actions