##// END OF EJS Templates
Fixed STARTTLS option key (#19232)....
Jean-Philippe Lang -
r13665:2800598832d2
parent child
Show More
@@ -1,66 +1,66
1 1 # Redmine - project management software
2 2 # Copyright (C) 2006-2015 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 require 'net/imap'
19 19
20 20 module Redmine
21 21 module IMAP
22 22 class << self
23 23 def check(imap_options={}, options={})
24 24 host = imap_options[:host] || '127.0.0.1'
25 25 port = imap_options[:port] || '143'
26 26 ssl = !imap_options[:ssl].nil?
27 starttls = !imap_options[:tls].nil?
27 starttls = !imap_options[:starttls].nil?
28 28 folder = imap_options[:folder] || 'INBOX'
29 29
30 30 imap = Net::IMAP.new(host, port, ssl)
31 31 if starttls
32 32 imap.starttls
33 33 end
34 34 imap.login(imap_options[:username], imap_options[:password]) unless imap_options[:username].nil?
35 35 imap.select(folder)
36 36 imap.uid_search(['NOT', 'SEEN']).each do |uid|
37 37 msg = imap.uid_fetch(uid,'RFC822')[0].attr['RFC822']
38 38 logger.debug "Receiving message #{uid}" if logger && logger.debug?
39 39 if MailHandler.safe_receive(msg, options)
40 40 logger.debug "Message #{uid} successfully received" if logger && logger.debug?
41 41 if imap_options[:move_on_success]
42 42 imap.uid_copy(uid, imap_options[:move_on_success])
43 43 end
44 44 imap.uid_store(uid, "+FLAGS", [:Seen, :Deleted])
45 45 else
46 46 logger.debug "Message #{uid} can not be processed" if logger && logger.debug?
47 47 imap.uid_store(uid, "+FLAGS", [:Seen])
48 48 if imap_options[:move_on_failure]
49 49 imap.uid_copy(uid, imap_options[:move_on_failure])
50 50 imap.uid_store(uid, "+FLAGS", [:Deleted])
51 51 end
52 52 end
53 53 end
54 54 imap.expunge
55 55 imap.logout
56 56 imap.disconnect
57 57 end
58 58
59 59 private
60 60
61 61 def logger
62 62 ::Rails.logger
63 63 end
64 64 end
65 65 end
66 66 end
General Comments 0
You need to be logged in to leave comments. Login now