MailKit udostępnia klienta SOCKS5 bezpośrednio przez interfejs połączenia usługi pocztowej. Ustaw ProxyClient przed wywołaniem Connect:

using MailKit.Net.Pop3;
using MailKit.Net.Proxy;
using MailKit.Security;

using var client = new Pop3Client();
client.ProxyClient = new Socks5Client("proxy.example.net", 1080);

client.Connect("pop.example.net", 995, SecureSocketOptions.SslOnConnect);
client.Authenticate(mailUser, mailPassword);

Console.WriteLine(client.Count);
client.Disconnect(true);

Zastąp przykładowe hosty rzeczywistymi punktami końcowymi SOCKS i poczty. W pokazanym konstruktorze bez konta proxy wpis z listy proxy SOCKS5 może dostarczyć adres proxy dla dozwolonej publicznej trasy POP3S; musi on przepuszczać host poczty i rzeczywisty port. Wartości mailUser i mailPassword pochodzą z obsługi danych logowania do skrzynki w samej aplikacji. Ten przykład tylko liczy wiadomości; niczego nie pobiera ani nie oznacza do usunięcia.

Pokazane API jest udokumentowane w MailKit 4.17.0. Socks5Client ma też konstruktor przyjmujący System.Net.NetworkCredential, gdy serwer SOCKS wymaga danych logowania.

Port 995 z SslOnConnect od razu wybiera TLS dla połączenia POP3. Zachowaj nazwę hosta serwera poczty w Connect, aby jego certyfikat można było sprawdzić w zwykły sposób. W przypadku dostawcy wymagającego STLS na porcie 110 wybierz jawnie SecureSocketOptions.StartTls i użyj udokumentowanego punktu końcowego tego dostawcy.

Powiązane artykuły