pop3.live.com에 연결할 때 연결 상태가 좋으며 내가 갖고있는 메시지의 양과 파일 크기가 표시되지만 "RETR"을 사용하여 메시지를 가져 와서 콘솔 응용 프로그램에 표시하려고하면 아무 것도 표시되지 않습니다. 여기 pop3에서 메일에 액세스하려고하면 Retrieve 명령이 작동하지 않는 것 같습니다. C#
난 당신이 검색 할 메시지를 지정해야합니다, 지금까지string str = string.Empty;
string strTemp = string.Empty;
using (TcpClient tc = new TcpClient())
{
tc.Connect("pop3.live.com", 995);
using (SslStream sl = new SslStream(tc.GetStream()))
{
sl.AuthenticateAsClient("pop3.live.com");
using (StreamReader sr = new StreamReader(sl))
{
using (StreamWriter sw = new StreamWriter(sl))
{
sw.WriteLine("USER " + _username);
sw.Flush();
sw.WriteLine("PASS "+ _password);
sw.Flush();
sw.WriteLine("LIST");
sw.Flush();
sw.WriteLine("RETR");
sw.Flush();
sw.WriteLine("QUIT ");
sw.Flush();
while ((strTemp = sr.ReadLine()) != null)
{
if (strTemp == "." || strTemp.IndexOf("-ERR") != -1)
{
break;
}
str += strTemp;
}
}
}
}
}
Console.WriteLine(str);
Console.ReadLine();
은 당신이 결과를 읽는 마친 * 후'QUIT' *을 퍼팅 시도 유무 : 예를 들어
? 당신이 이미 "잘 했어, 안녕"이라고 말했기 때문에 그것이 결과를 보내는 것을 방해하지 않기로 결정한 것처럼 보입니다. –
자신과 우리를 호의적으로 만들 수 있고 서버의 응답 줄을 나열 할 수 있습니다. 출력 및 입력을 로그에 혼합하는 것이 더 좋습니다. 첫째, 모든 명령을 보낸 후에 만 디버깅을하는 것이 좋습니다. 둘째, 모든 명령을 보낸 후에 만 모든 것을 읽는 것이 필요하지 않습니다. 일부 서버는 PIPELINING을 지원하지 않습니다. –