async-email / async-smtp

Apache License 2.0
59 stars 12 forks source link

Why was remove Socks5 Feature? #62

Closed her0mx closed 1 year ago

her0mx commented 1 year ago

Time ago i was looking for a socks5 feature in some smtp client, and now i see was deleted i want to know why? I hope don't take this post like a threat , i only want to know why, 'cause so i need to implement my own mine and will be placed on crates and github. https://github.com/async-email/async-smtp/commit/56907385ee18984611b04aebd247641c1c6314c3 Thanks for your time

link2xt commented 1 year ago

All the connection setup code was moved out of this library to avoid maintaining Socks5, OpenSSL TLS, Rustls and so on. Different users of the library have different needs for the type of streams they want to run SMTP on, maybe you want to run SMTP on top of your own tunnel or encryption layer or over QUIC or whatever. You probably also want to configure TCP timeouts on the socket before running Socks5 over it. If the connectivity code is part of async-smtp, you have to ask for each type of the stream and all kinds of TCP configurations to be added to the library and connection setup gets more and more complicated to support all the possible usecases.

This library is used by deltachat-core-rust and we have moved all the code related to connection setup including socks5 setup there, you can see how it works: https://github.com/deltachat/deltachat-core-rust/blob/20c88743dfd8e11c56a4c06e485b9618dc5cdf9d/src/smtp.rs

You can setup your own TCP socket, Socks5 and TLS, and then run this smtp-client on top of the connection.

her0mx commented 1 year ago

Thank you So much for your answer i will check it up.