Подключение к POP3 через SOCKS5 с помощью MailKit
Задайте Socks5Client из MailKit перед подключением Pop3Client к серверу POP3S.
MailKit предоставляет клиент SOCKS5 напрямую через интерфейс подключения почтовой службы. Задайте ProxyClient перед вызовом 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);Замените примерные хосты фактическими конечными точками SOCKS и почты. В показанном конструкторе без прокси-учётной записи запись из списка прокси SOCKS5 может дать адрес прокси для разрешённого публичного маршрута POP3S; он должен пропускать почтовый хост и фактический порт. Значения mailUser и mailPassword берутся из обработки учётных данных почтового ящика в самом приложении. Этот пример только считает сообщения; он ничего не скачивает и не помечает на удаление.
Показанный API описан в MailKit 4.17.0. У Socks5Client есть также конструктор, принимающий System.Net.NetworkCredential, когда сервер SOCKS требует учётные данные.
Порт 995 вместе с SslOnConnect сразу выбирает TLS для соединения POP3. Сохраните имя хоста почтового сервера в Connect, чтобы его сертификат проверялся обычным образом. Если провайдер требует STLS на порту 110, явно выберите SecureSocketOptions.StartTls и используйте задокументированную конечную точку этого провайдера.