Conectar ao POP3 através de SOCKS5 com o MailKit
Atribua o Socks5Client do MailKit antes de ligar um Pop3Client a um servidor POP3S.
O MailKit fornece um cliente SOCKS5 diretamente através da sua interface de ligação do serviço de correio. Atribua ProxyClient antes de chamar 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);Substitua os anfitriões de exemplo pelos pontos finais reais de SOCKS e de correio. No construtor sem conta de proxy mostrado, uma entrada da lista de proxies SOCKS5 pode fornecer o endereço do proxy para uma rota POP3S pública permitida; tem de permitir o anfitrião de correio e a porta real. Os valores mailUser e mailPassword vêm do tratamento de credenciais da caixa de correio na própria aplicação. Este exemplo apenas conta mensagens; não descarrega nada nem marca nenhuma para eliminação.
A API mostrada está documentada no MailKit 4.17.0. O Socks5Client tem também um construtor que aceita um System.Net.NetworkCredential quando o servidor SOCKS exige credenciais.
A porta 995 com SslOnConnect seleciona TLS imediatamente para a ligação POP3. Mantenha o nome do anfitrião do servidor de correio em Connect para que o seu certificado possa ser verificado normalmente. Para um fornecedor que exige STLS na porta 110, selecione explicitamente SecureSocketOptions.StartTls e utilize o ponto final documentado desse fornecedor.