diff --git a/lib/redmine/imap.rb b/lib/redmine/imap.rb index c54ff68f0ff1..7870c18a1b16 100644 --- a/lib/redmine/imap.rb +++ b/lib/redmine/imap.rb @@ -48,9 +48,15 @@ def check(imap_options = {}, options = {}) def connect_imap(imap_options) host = imap_options[:host] || '127.0.0.1' port = imap_options[:port] || '143' - ssl = imap_options[:ssl] - ssl_verification = imap_options[:ssl_verification] - imap = Net::IMAP.new(host, port, ssl, nil, ssl_verification) + verify_mode = imap_options[:ssl_verification] ? OpenSSL::SSL::VERIFY_PEER : OpenSSL::SSL::VERIFY_NONE + ssl_params = + if imap_options[:ssl] + { verify_mode: } + else + false + end + + imap = Net::IMAP.new(host, port:, ssl: ssl_params) imap.login(imap_options[:username], imap_options[:password]) unless imap_options[:username].nil?