Remove connection setup and all the "transports" except SMTP.
Now the user is responsible for providing a stream with TLS, read and write timeouts, buffering, SOCKS5 etc.
This makes it possible to have proper read and write timeouts instead of per-command timeouts,
use alternative TLS implementations such as Rustls and use SMTP over other proxies, such as HTTP CONNECT, without modifying the library.
Remove connection setup and all the "transports" except SMTP.
Now the user is responsible for providing a stream with TLS, read and write timeouts, buffering, SOCKS5 etc.
This makes it possible to have proper read and write timeouts instead of per-command timeouts, use alternative TLS implementations such as Rustls and use SMTP over other proxies, such as HTTP CONNECT, without modifying the library.