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 і використайте задокументовану кінцеву точку цього провайдера.

Схожі статті