Running the test case I ran into the same error Christian did, mentioned in comment #8, but after hacking on the testcase a bit (I don't know Ruby, but studying the code in /usr/lib/ruby/2.5.0/net/smtp.rb gave enough clues) I was able to reproduce:
$ ./testcase-ruby-ssl.rb
1
2
3
4
5
6
6.1Traceback (most recent call last):
26: from ./testcase-ruby-ssl.rb:46:in `<main>'
25: from /usr/lib/ruby/2.5.0/net/smtp.rb:519:in `start'
24: from ./testcase-ruby-ssl.rb:48:in `block in <main>'
23: from /usr/lib/ruby/2.5.0/net/smtp.rb:659:in `send_message'
22: from /usr/lib/ruby/2.5.0/net/smtp.rb:854:in `rcptto_list'
21: from /usr/lib/ruby/2.5.0/net/smtp.rb:659:in `block in send_message'
20: from /usr/lib/ruby/2.5.0/net/smtp.rb:898:in `data'
19: from /usr/lib/ruby/2.5.0/net/smtp.rb:960:in `critical'
18: from /usr/lib/ruby/2.5.0/net/smtp.rb:904:in `block in data'
17: from /usr/lib/ruby/2.5.0/net/protocol.rb:304:in `write_message'
16: from /usr/lib/ruby/2.5.0/net/protocol.rb:224:in `writing'
15: from /usr/lib/ruby/2.5.0/net/protocol.rb:305:in `block in write_message'
14: from /usr/lib/ruby/2.5.0/net/protocol.rb:339:in `using_each_crlf_line'
13: from /usr/lib/ruby/2.5.0/net/protocol.rb:306:in `block (2 levels) in write_message'
12: from /usr/lib/ruby/2.5.0/net/protocol.rb:291:in `write_message_0'
11: from /usr/lib/ruby/2.5.0/net/protocol.rb:350:in `each_crlf_line'
10: from /usr/lib/ruby/2.5.0/net/protocol.rb:360:in `buffer_filling'
9: from /usr/lib/ruby/2.5.0/net/protocol.rb:360:in `step'
8: from /usr/lib/ruby/2.5.0/net/protocol.rb:362:in `block in buffer_filling'
7: from /usr/lib/ruby/2.5.0/net/protocol.rb:352:in `block in each_crlf_line'
6: from /usr/lib/ruby/2.5.0/net/protocol.rb:292:in `block in write_message_0'
5: from /usr/lib/ruby/2.5.0/net/protocol.rb:233:in `write0'
4: from /usr/lib/ruby/2.5.0/openssl/buffering.rb:338:in `write'
3: from /usr/lib/ruby/2.5.0/openssl/buffering.rb:338:in `inject'
2: from /usr/lib/ruby/2.5.0/openssl/buffering.rb:338:in `each'
1: from /usr/lib/ruby/2.5.0/openssl/buffering.rb:339:in `block in write'
/usr/lib/ruby/2.5.0/openssl/buffering.rb:316:in `do_write': incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError)
At least, this seems to match the original reported error string, so presumably it's a positive.
Running the test case I ran into the same error Christian did, mentioned in comment #8, but after hacking on the testcase a bit (I don't know Ruby, but studying the code in /usr/lib/ ruby/2. 5.0/net/ smtp.rb gave enough clues) I was able to reproduce:
$ ./testcase- ruby-ssl. rb ruby-ssl. rb:46:in `<main>' ruby/2. 5.0/net/ smtp.rb: 519:in `start' ruby-ssl. rb:48:in `block in <main>' ruby/2. 5.0/net/ smtp.rb: 659:in `send_message' ruby/2. 5.0/net/ smtp.rb: 854:in `rcptto_list' ruby/2. 5.0/net/ smtp.rb: 659:in `block in send_message' ruby/2. 5.0/net/ smtp.rb: 898:in `data' ruby/2. 5.0/net/ smtp.rb: 960:in `critical' ruby/2. 5.0/net/ smtp.rb: 904:in `block in data' ruby/2. 5.0/net/ protocol. rb:304: in `write_message' ruby/2. 5.0/net/ protocol. rb:224: in `writing' ruby/2. 5.0/net/ protocol. rb:305: in `block in write_message' ruby/2. 5.0/net/ protocol. rb:339: in `using_ each_crlf_ line' ruby/2. 5.0/net/ protocol. rb:306: in `block (2 levels) in write_message' ruby/2. 5.0/net/ protocol. rb:291: in `write_message_0' ruby/2. 5.0/net/ protocol. rb:350: in `each_crlf_line' ruby/2. 5.0/net/ protocol. rb:360: in `buffer_filling' ruby/2. 5.0/net/ protocol. rb:360: in `step' ruby/2. 5.0/net/ protocol. rb:362: in `block in buffer_filling' ruby/2. 5.0/net/ protocol. rb:352: in `block in each_crlf_line' ruby/2. 5.0/net/ protocol. rb:292: in `block in write_message_0' ruby/2. 5.0/net/ protocol. rb:233: in `write0' ruby/2. 5.0/openssl/ buffering. rb:338: in `write' ruby/2. 5.0/openssl/ buffering. rb:338: in `inject' ruby/2. 5.0/openssl/ buffering. rb:338: in `each' ruby/2. 5.0/openssl/ buffering. rb:339: in `block in write' ruby/2. 5.0/openssl/ buffering. rb:316: in `do_write': incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding: :CompatibilityE rror)
1
2
3
4
5
6
6.1Traceback (most recent call last):
26: from ./testcase-
25: from /usr/lib/
24: from ./testcase-
23: from /usr/lib/
22: from /usr/lib/
21: from /usr/lib/
20: from /usr/lib/
19: from /usr/lib/
18: from /usr/lib/
17: from /usr/lib/
16: from /usr/lib/
15: from /usr/lib/
14: from /usr/lib/
13: from /usr/lib/
12: from /usr/lib/
11: from /usr/lib/
10: from /usr/lib/
9: from /usr/lib/
8: from /usr/lib/
7: from /usr/lib/
6: from /usr/lib/
5: from /usr/lib/
4: from /usr/lib/
3: from /usr/lib/
2: from /usr/lib/
1: from /usr/lib/
/usr/lib/
At least, this seems to match the original reported error string, so presumably it's a positive.
Next I'll start patch testing.