MailKit ofrece un cliente SOCKS5 directamente mediante su interfaz de conexión del servicio de correo. Asigna ProxyClient antes de llamar a 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);

Sustituye los hosts de ejemplo por los puntos de conexión reales de SOCKS y del correo. En el constructor sin cuenta de proxy que se muestra, una entrada de la lista de proxies SOCKS5 puede aportar la dirección del proxy para una ruta POP3S pública permitida; debe permitir el host de correo y el puerto real. Los valores mailUser y mailPassword provienen del manejo de credenciales del buzón en la propia aplicación. Este ejemplo solo cuenta mensajes; no descarga nada ni marca ninguno para eliminarlo.

La API mostrada está documentada en MailKit 4.17.0. Socks5Client también tiene un constructor que acepta un System.Net.NetworkCredential cuando el servidor SOCKS exige credenciales.

El puerto 995 con SslOnConnect selecciona TLS de inmediato para la conexión POP3. Mantén el nombre de host del servidor de correo en Connect para que su certificado se pueda verificar con normalidad. Para un proveedor que exige STLS en el puerto 110, selecciona SecureSocketOptions.StartTls explícitamente y usa el punto de conexión documentado de ese proveedor.

Artículos relacionados