private void receiveMails() { /*Spartan.Net.Mail.POP3 pop3 = new Spartan.Net.Mail.POP3(); pop3.Connect(host, port, user, pass);*/ receiverDone = false; int count = -1; string dirname; string filename; BinaryWriter bw; FileStream fs; BinaryReader br; //fs = new FileStream("E:\\redirector\\count.txt", FileMode.Open, FileAccess.Read, FileShare.Read); //br = new BinaryReader(fs); //count = Int32.Parse(br.ReadString()); //br.Close(); //fs.Close(); lock (this) { count = Int32.Parse(File.ReadAllText("E:\\redirector\\count.txt")); } Console.WriteLine("count is " + count); while (true) { // Thread.Sleep(0); isReceiverAsleep = false; int newMessages = 0; int readMessages = 0; //pop3.ListMessages(out readMessages, out newMessages); OpenPOP.POP3.POPClient popclient = new OpenPOP.POP3.POPClient(); popclient.Connect(host, port); popclient.Authenticate(user, pass); newMessages = popclient.GetMessageCount(); for (int i = 1; i <= newMessages; i++) { dirname = "E:\\redirector\\sent_mails\\" + (count + i); Directory.CreateDirectory(dirname); string message = ""; //pop3.RetrieveMessage(i, out message); //pop3.DeleteMessage(i); //bool fnsh = true; //OpenPOP.MIMEParser.Message msg = new OpenPOP.MIMEParser.Message(ref fnsh, message); OpenPOP.MIMEParser.Message msg = popclient.GetMessage(i, false); message = msg.From + "\n" + msg.FromEmail + "\n" + msg.Subject + "\n" + msg.DateTimeInfo + "\n" + msg.AttachmentCount + "\n"; // Write to approproiate file instead of printing //string show_msg = string.Format(sndr + "::" + subject); //MessageBox.Show(show_msg); for (int j = 1; j < msg.AttachmentCount; j++) { OpenPOP.MIMEParser.Attachment attachment = (OpenPOP.MIMEParser.Attachment)msg.Attachments[j]; message = message + attachment.ContentFileName + "\n"; filename = dirname + "\\" + attachment.ContentFileName; msg.SaveAttachment(attachment, filename); /* byte[] bytes = attachment.DecodedAsBytes(); filename = dirname + "\\" + attachment.ContentFileName; fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Read); bw = new BinaryWriter(fs); bw.Flush(); bw.Close(); bw.Write(bytes); fs.Close();*/ //MessageBox.Show(string.Format("attachment: {0}", attachment.ContentFileName)); //MessageBox.Show(attachment_txt); } //msg.SaveAttachments(dirname); if (msg.AttachmentCount > 0) { OpenPOP.MIMEParser.Attachment attachment2 = (OpenPOP.MIMEParser.Attachment)msg.Attachments[0]; message = message + attachment2.DecodeAsText(); } else { message = message + msg.MessageBody[msg.MessageBody.Count - 1]; } filename = dirname + "\\mail.txt"; /*fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Read); bw = new BinaryWriter(fs); bw.Write(message); bw.Flush(); bw.Close(); fs.Close();*/ File.WriteAllText(filename, message); popclient.DeleteMessage(i); //popclient.DeleteAllMessages(); // MessageBox.Show(message); } popclient.Disconnect(); //pop3.Disconnect(); //fs = new FileStream("E:\\redirector\\count.txt", FileMode.Open, FileAccess.Write, FileShare.Read); //bw = new BinaryWriter(fs); count = count + newMessages; string ncount = "" + count; lock (this) { File.WriteAllText("E:\\redirector\\count.txt", ncount); } //bw.Write((int)count); //bw.Flush(); //bw.Close(); //fs.Close(); isReceiverAsleep = true; /*if (closeForm) break;*/ Thread.Sleep(10000); //if (closeForm) // break; } receiverDone = true; }
private void receiveMails() { /*Spartan.Net.Mail.POP3 pop3 = new Spartan.Net.Mail.POP3(); * pop3.Connect(host, port, user, pass);*/ receiverDone = false; int count = -1; string dirname; string filename; BinaryWriter bw; FileStream fs; BinaryReader br; //fs = new FileStream("E:\\redirector\\count.txt", FileMode.Open, FileAccess.Read, FileShare.Read); //br = new BinaryReader(fs); //count = Int32.Parse(br.ReadString()); //br.Close(); //fs.Close(); lock (this) { count = Int32.Parse(File.ReadAllText("E:\\redirector\\count.txt")); } Console.WriteLine("count is " + count); while (true) { // Thread.Sleep(0); isReceiverAsleep = false; int newMessages = 0; int readMessages = 0; //pop3.ListMessages(out readMessages, out newMessages); OpenPOP.POP3.POPClient popclient = new OpenPOP.POP3.POPClient(); popclient.Connect(host, port); popclient.Authenticate(user, pass); newMessages = popclient.GetMessageCount(); for (int i = 1; i <= newMessages; i++) { dirname = "E:\\redirector\\sent_mails\\" + (count + i); Directory.CreateDirectory(dirname); string message = ""; //pop3.RetrieveMessage(i, out message); //pop3.DeleteMessage(i); //bool fnsh = true; //OpenPOP.MIMEParser.Message msg = new OpenPOP.MIMEParser.Message(ref fnsh, message); OpenPOP.MIMEParser.Message msg = popclient.GetMessage(i, false); message = msg.From + "\n" + msg.FromEmail + "\n" + msg.Subject + "\n" + msg.DateTimeInfo + "\n" + msg.AttachmentCount + "\n"; // Write to approproiate file instead of printing //string show_msg = string.Format(sndr + "::" + subject); //MessageBox.Show(show_msg); for (int j = 1; j < msg.AttachmentCount; j++) { OpenPOP.MIMEParser.Attachment attachment = (OpenPOP.MIMEParser.Attachment)msg.Attachments[j]; message = message + attachment.ContentFileName + "\n"; filename = dirname + "\\" + attachment.ContentFileName; msg.SaveAttachment(attachment, filename); /* byte[] bytes = attachment.DecodedAsBytes(); * filename = dirname + "\\" + attachment.ContentFileName; * fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Read); * bw = new BinaryWriter(fs); * bw.Flush(); * bw.Close(); * bw.Write(bytes); * fs.Close();*/ //MessageBox.Show(string.Format("attachment: {0}", attachment.ContentFileName)); //MessageBox.Show(attachment_txt); } //msg.SaveAttachments(dirname); if (msg.AttachmentCount > 0) { OpenPOP.MIMEParser.Attachment attachment2 = (OpenPOP.MIMEParser.Attachment)msg.Attachments[0]; message = message + attachment2.DecodeAsText(); } else { message = message + msg.MessageBody[msg.MessageBody.Count - 1]; } filename = dirname + "\\mail.txt"; /*fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Read); * bw = new BinaryWriter(fs); * bw.Write(message); * bw.Flush(); * bw.Close(); * fs.Close();*/ File.WriteAllText(filename, message); popclient.DeleteMessage(i); //popclient.DeleteAllMessages(); // MessageBox.Show(message); } popclient.Disconnect(); //pop3.Disconnect(); //fs = new FileStream("E:\\redirector\\count.txt", FileMode.Open, FileAccess.Write, FileShare.Read); //bw = new BinaryWriter(fs); count = count + newMessages; string ncount = "" + count; lock (this) { File.WriteAllText("E:\\redirector\\count.txt", ncount); } //bw.Write((int)count); //bw.Flush(); //bw.Close(); //fs.Close(); isReceiverAsleep = true; /*if (closeForm) * break;*/ Thread.Sleep(10000); //if (closeForm) // break; } receiverDone = true; }