Hello,
There is a good article here: https://mailtrap.io/blog/starttls-ssl-tls/
Is there a debug mode in your library, allowing to show whether the negotiation fails in the TLS version (e.g. TLS 1.1, 1.2 or 1.3) ? or at a later step when both parties have to agree on a common crypto engine to use ?
ssl0.ovh.net provides service on both ports 465 and 587, but they are not interchangeable. On port 587 the dialog begins in plaintext and the client (your app) must sent a STARTTLS command. This is part of the protocol.