diff --git a/lib/mail/network/delivery_methods/smtp.rb b/lib/mail/network/delivery_methods/smtp.rb index 1ac367cc2..364f51ce9 100644 --- a/lib/mail/network/delivery_methods/smtp.rb +++ b/lib/mail/network/delivery_methods/smtp.rb @@ -141,11 +141,16 @@ def ssl_context openssl_verify_mode = "OpenSSL::SSL::VERIFY_#{openssl_verify_mode.upcase}".constantize end - context = Net::SMTP.default_ssl_context - context.verify_mode = openssl_verify_mode if openssl_verify_mode - context.ca_path = settings[:ca_path] if settings[:ca_path] - context.ca_file = settings[:ca_file] if settings[:ca_file] - context + Net::SMTP.default_ssl_context.tap do |context| + context.verify_mode = openssl_verify_mode if openssl_verify_mode + + if settings[:ca_path] || settings[:ca_file] + context.ca_path = settings[:ca_path] if settings[:ca_path] + context.ca_file = settings[:ca_file] if settings[:ca_file] + elsif openssl_verify_mode && openssl_verify_mode != OpenSSL::SSL::VERIFY_NONE + context.cert_store = OpenSSL::SSL::SSLContext::DEFAULT_CERT_STORE + end + end end end end