MailKit은 메일 서비스 연결 인터페이스를 통해 SOCKS5 클라이언트를 직접 제공합니다. Connect를 호출하기 전에 ProxyClient을 지정합니다.

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에는 SOCKS 서버가 자격 증명을 요구할 때 System.Net.NetworkCredential을 받는 생성자도 있습니다.

995 포트와 SslOnConnect 조합은 POP3 연결에 즉시 TLS를 선택합니다. 인증서를 정상적으로 검증할 수 있도록 Connect에는 메일 서버의 호스트 이름을 그대로 두십시오. 110 포트에서 STLS를 요구하는 공급자라면 SecureSocketOptions.StartTls를 명시적으로 선택하고 그 공급자가 문서화한 엔드포인트를 사용하십시오.

관련 글