2017-09-20 12 views
0

C#에서 POP3 클라이언트를 구현하려고하는데 AUTH PLAIN을 사용하는 인증이 나를 죽이고 있습니다. 테스트를 위해 pop3.live.com에서 내 계정을 사용하고 있지만 인증을 넘을 수는 없습니다. 포트 995 및 일반 110 (다음 TLS로 전환)을 통해 SSL을 통해 연결을 시도했지만 인증을 관리 할 수 ​​없습니다.C# POP3 클라이언트 구현

TcpClient 클래스를 사용하여 연결을 설정하고 서버에서 + OK 응답을받습니다. 비 SSL 연결을 수행 할 때 CAPA 명령으로 기능을 확인하고 응답을받습니다. 그래서 STLS 명령을 보내서 SslStream으로 전환하고 다른 CAPA 명령을 보내 인증 메커니즘을 확인하고 SASL PLAIN이 지원되는지 확인합니다 (일반 연결에 없었 음).

이제 AUTH PLAIN과 함께 보낼 내용을 알지 못합니다. base64 "account \ [email protected] \ 0password", "\ [email protected] \ 0password", "\ 0account \ 0password "... 가능한 모든 조합이 있지만 AUTH PLAIN을 사용하여 자격 증명을 보낼 때"프로토콜 오류 "가 발생하거나 AUTH PLAIN을 보낸 후 자격 증명을 보낼 때"인증되지 않음 ... "이 반환됩니다 (예상대로"+ "를 반환합니다).

내가 누락 된 항목이 있습니까? SSL/TLS를 사용할 때 인증 방법을 예제로 제공 할 수 있습니까?

감사합니다.

답변

0

당신은 사용할 필요 "\ [email protected] \ 0password"

+0

나는 그것을 시도하지만, "프로토콜 오류가 발생했습니다. (16)"를 얻었다, 그래서 내가 AUTH PLAIN를 보내기 전에 뭔가를 놓친 적이 있으리라 믿고있어 . – Glumac

+0

문자열이 아닌 해당 순서를 나타내는 데 바이트 배열을 사용해야합니다. – jstedfast

+0

예, 스트림에 쓸 수있는 다른 방법이 없습니다. 나는 다른 인코딩 (UTF8, ASCII)을 시도했지만, base64 로의 변환과 함께 그리고 변환없이, 성공하지 못했습니다. – Glumac