POP3 프로토콜을 통해 live.com 계정에서 메일을 읽으려고합니다.TcpClient 및 StreamWriter/StreamReader 만 사용하여 POP3 서버 읽기
내가 발견 한 서버 pop3.live.com와 포트 I, 나는 위해는 NetworkStream과에서는 StreamReader/StreamWriter를 사용하고 미리 만들어진 라이브러리를 사용하여 계획하고 있지 않다 995
경우입니다 작업. 이걸 알아 내야 해. 그래서, 여기에 주어진 대답 중 하나는 Reading Email using Pop3 in C#은 유용하지 않습니다.
이 프로그램은 더 큰 프로그램의 일부이지만 작동하는지 확인하기 위해 작은 테스트를 거쳤습니다. 어쨌든, 나는 아무것도 얻지 못하고있다. 다음은 내가 사용하고있는 코드입니다. 올바른 것이어야합니다.
편집 :이 코드는 오래된 것입니다. 해결 된 두 번째 블록 문제를 참조하십시오.
public Program() {
string temp = "";
using(TcpClient tc = new TcpClient(new IPEndPoint(IPAddress.Parse("127.0.0.1"),8000))) {
tc.Connect("pop3.live.com",995);
using(NetworkStream nws = tc.GetStream()) {
using(StreamReader sr = new StreamReader(nws)) {
using(StreamWriter sw = new StreamWriter(nws)) {
sw.WriteLine("USER " + user);
sw.Flush();
sw.WriteLine("PASS " + pass);
sw.Flush();
sw.WriteLine("LIST");
sw.Flush();
while(temp != ".") {
temp += sr.ReadLine();
}
}
}
}
}
Console.WriteLine(temp);
}
비주얼 스튜디오 디버거는 지속적으로 오류에 "연결할 수없는 네트워크 65.55.172.253:995에 시도 된 소켓 작업"을 던졌습니다 tc.Connect("pop3.live.com",995);
이상 떨어진다.
내 컴퓨터의 포트 8000에서 포트 995 인 hotmail pop3 포트로 보내고 있습니다. 그리고 나는 아무 것도 얻지 못하고 아이디어가 없습니다.
두 번째 블록 : 분명히 quit 명령을 쓰지 않은 것이 문제였습니다.
강령 :
당신은 와이어 샤크를 사용하여 네트워크 트래픽을 볼 경우 어떻게됩니까public Program() {
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 " + user);
sw.Flush();
sw.WriteLine("PASS " + pass);
sw.Flush();
sw.WriteLine("LIST");
sw.Flush();
sw.WriteLine("QUIT ");
sw.Flush();
while((strTemp = sr.ReadLine()) != null) {
if(strTemp == "." || strTemp.IndexOf("-ERR") != -1) {
break;
}
str += strTemp;
}
}
}
}
}
Console.WriteLine(str);
}
그냥 무한 루프를 만드시겠습니까? 서버가 당신이 보내고있는 모든 명령어에 대해 하나의 점으로 답할 것 같지 않습니다. 아마 조금 더 말할 것입니다. – svinto
점은 대화를 끝내기위한 POP3 표준 방법입니다. 나는 나의 우편물의 전체 목록을 요구하고있다. 그것은 전달할 것이고, 끝나면 사실을 나타내는 점을 보냅니다. 그래서 내가 듣기 전까지 계속 듣습니다. – KdgDev