MailKit fornisce un client SOCKS5 direttamente tramite la sua interfaccia di connessione del servizio di posta. Imposta ProxyClient prima di chiamare 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);

Sostituisci gli host di esempio con gli endpoint reali di SOCKS e della posta. Nel costruttore senza account proxy mostrato, una voce dell'elenco di proxy SOCKS5 può fornire l'indirizzo del proxy per una rotta POP3S pubblica consentita; deve permettere l'host di posta e la porta reale. I valori mailUser e mailPassword provengono dalla gestione delle credenziali della casella di posta dell'applicazione. Questo esempio conta solo i messaggi; non scarica nulla e non ne contrassegna nessuno per l'eliminazione.

L'API mostrata è documentata in MailKit 4.17.0. Socks5Client ha anche un costruttore che accetta un System.Net.NetworkCredential quando il server SOCKS richiede credenziali.

La porta 995 con SslOnConnect seleziona subito TLS per la connessione POP3. Mantieni il nome host del server di posta in Connect così il suo certificato può essere verificato normalmente. Per un provider che richiede STLS sulla porta 110, seleziona esplicitamente SecureSocketOptions.StartTls e usa l'endpoint documentato di quel provider.

Articoli correlati