Domyślam się, że chodzi Ci o brak funkcji pobierającej wiadomości - oto i ona (dość obszerna):
private void pobieranieMaili()
{
string path = Application.StartupPath;
try
{
pobieraWiadomosci = true;
List<odczyt> listaMaili = new List<odczyt>();
int licznik = 0;
XmlSerializer x = new XmlSerializer(typeof(List<ustawienia>));
FileStream f = new FileStream(path + @"\data.xml", FileMode.Open);
List<ustawienia> sett = (List<ustawienia>)x.Deserialize(f);
f.Close();
sett.ForEach(delegate(ustawienia ust)
{
//prepare pop client
// TODO: Replace server address, username and password with your own credentials.
Pop3.Pop3MimeClient DemoClient = new Pop3.Pop3MimeClient(ust.adresPop3, Convert.ToInt32(ust.portPop3), ust.ssl, ust.nazwaUzytkownika, ust.haslo);
DemoClient.Trace += new TraceHandler(Console.WriteLine);
DemoClient.ReadTimeout = 60000; //give pop server 60 seconds to answer
//establish connection
DemoClient.Connect();
//get mailbox stats
int numberOfMailsInMailbox, mailboxSize;
DemoClient.GetMailboxStats(out numberOfMailsInMailbox, out mailboxSize);
//get at most the xx first emails
RxMailMessage mm;
int downloadNumberOfEmails;
toolStripProgressBar1.Maximum = numberOfMailsInMailbox;
int maxDownloadEmails = 99;
if (numberOfMailsInMailbox < maxDownloadEmails)
{
downloadNumberOfEmails = numberOfMailsInMailbox;
}
else
{
downloadNumberOfEmails = maxDownloadEmails;
}
for (int i = 1; i <= downloadNumberOfEmails; i++)
{
DemoClient.GetEmail(i, out mm);
if (mm == null)
{
//Console.WriteLine("Email " + i.ToString() + " cannot be displayed.");
}
else
{
toolStripProgressBar1.Value = i;
listaMaili.Add(new odczyt(Convert.ToString(mm.From), Convert.ToString(mm.To), mm.Subject, mm.Body, Convert.ToString(mm.DeliveryDate)));
toolStripStatusLabel1.Text = "Pobieranie wiadomości z konta: " + Convert.ToString(mm.To) + " (" + i + "/" + numberOfMailsInMailbox + ")";
++licznik;
toolStrip1.Refresh();
if (mm.Attachments.Count > 0)
for (int AttachmentNo = 0; AttachmentNo < mm.Attachments.Count; AttachmentNo++)
{
//get stream of attachment
Stream attachmentStream = mm.Attachments[AttachmentNo].ContentStream;
//open a file stream to write attachment
string path1 = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\" + ust.nazwaUzytkownika + " " + mm.Attachments.ElementAt(AttachmentNo).Name;
using (FileStream writeFileStream = new FileStream(path1, FileMode.Create, FileAccess.Write))
{
int bytesCopied;
//create a byte buffer big enough to hold the email attachment stream
byte[] attachmentByteBuffer = new byte[(int)attachmentStream.Length];
//position at the beginning of the email attachment stream
attachmentStream.Seek(0, SeekOrigin.Begin);
//copy the attachment to the byte array
bytesCopied = attachmentStream.Read(attachmentByteBuffer, 0, attachmentByteBuffer.Length);
if (bytesCopied != attachmentByteBuffer.Length)
{
throw new ApplicationException("Tried to copy " + attachmentByteBuffer.Length.ToString() +
" bytes from attachment, but received " + bytesCopied.ToString() + " bytes instead.");
}
//write byte array to file
writeFileStream.Write(attachmentByteBuffer, 0, bytesCopied);
}
}
DemoClient.DeleteEmail(i);
}
}
//close connection
DemoClient.Disconnect();
int seek = ust.adresSmtp.IndexOf(".");
string andDestroy = ust.adresSmtp.Remove(0, ++seek);
ust.nazwaUzytkownika = ust.nazwaUzytkownika + "@" + andDestroy;
if (File.Exists(path + @"\" + ust.nazwaUzytkownika + "maile.xml"))
{
XmlSerializer c = new XmlSerializer(typeof(List<odczyt>));
FileStream d = new FileStream(path + @"\" + ust.nazwaUzytkownika + "maile.xml", FileMode.Open);
List<odczyt> listaStarychMaili = (List<odczyt>)c.Deserialize(d);
d.Close();
for (int i = 0; i < listaMaili.Count; i++)
listaStarychMaili.Add(new odczyt(listaMaili.ElementAt(i).nadawca, listaMaili.ElementAt(i).odbiorca, listaMaili.ElementAt(i).temat, listaMaili.ElementAt(i).tresc, listaMaili.ElementAt(i).data));
XmlSerializer oSerializer = new XmlSerializer(typeof(List<odczyt>));
StreamWriter oStreamWriter = new StreamWriter(path + @"\" + ust.nazwaUzytkownika + "maile.xml");
oSerializer.Serialize(oStreamWriter, listaStarychMaili);
oStreamWriter.Dispose();
}
else
{
XmlSerializer oSerializer = new XmlSerializer(typeof(List<odczyt>));
StreamWriter oStreamWriter = new StreamWriter(path + @"\" + ust.nazwaUzytkownika + "maile.xml");
oSerializer.Serialize(oStreamWriter, listaMaili);
oStreamWriter.Dispose();
}
listaMaili.Clear();
toolStripProgressBar1.Value = 0;
pobieraWiadomosci = false;
if (licznik == 0)
toolStripStatusLabel1.Text = "Brak nowych wiadomości";
else
toolStripStatusLabel1.Text = "Jest " + Convert.ToString(licznik) + " nowych wiadomości";
});
}
catch (Exception)
{
toolStripStatusLabel1.Text = "Nie udało się pobrać wiadomości";
pobieraWiadomosci = false;
}