받은 편지함에서 특정 전자 메일을 삭제하는 프로그램을 만들려고합니다.큰받은 편지함 읽기
: 여기AE.Net.Mail
사용을 (서버가 시간 내에 응답하지 않았습니다) 가끔 서버가 정말 느리게 응답 할 때까지 내 논리는 나를 위해 일하는 내 내가 오류 예외가 나의 코드
private void GetMessages()
{
ImapClient client = new ImapClient();
client.Connect("imap-mail.outlook.com", 993, true, false);
client.Login("mail", "password");
client.SelectMailbox("INBOX");
client.ServerTimeout = 0; // I just assumed 0 might be never.
client.IdleTimeout = 0;
int mcount = client.GetMessageCount();
for (int i = 0; i < mcount; i++)
{
lblStatus.BeginInvoke(new MethodInvoker(delegate { lblStatus.Text = "Proccessed " + i.ToString() + "/" + mcount.ToString() + " e-mail messages. "; }));
MailMessage msg = client.GetMessage(i, true);
if (msg.From.Address == txtMailToDelete.Text)
{
deletedcount++;
client.DeleteMessage(msg);
lblDeletedMessages.BeginInvoke(new MethodInvoker(delegate { lblDeletedMessages.Text = "Deleted " + deletedcount.ToString() + " messages. "; }));
}
}
}
지금받은 편지함에 3500 개 이상의 이메일이 있기 때문에 전체받은 편지함을받지 못했습니다. 너무 오래 걸리고 같은 예외가 있습니다. 내 방법은 스레드로 작업 된 이후
감사
다른 ServerTimeout 값을 사용하면 어떻게됩니까? – arnt
같은 예외. –