Лучший способ отображения электронной почты c # winforms - PullRequest
0 голосов
/ 06 декабря 2010

привет, у меня есть следующий код, который позволяет мне отображать электронные письма в моем почтовом ящике в элементе управления представлением списка и отображать тело corrospoding в rtb. Мой вопрос, есть ли лучший способ обрабатывать эти данные и отображать их, чем приведенный ниже im довольно плохо знаком с c #, поэтому подробные ответы будут великолепны

p.s im, используя компонент imap chilkat для обработки серверной части, если что-то Заранее спасибо

  Chilkat.MessageSet msgSet = imap.Search("ALL", true);
        bundle = imap.FetchBundle(msgSet);

        Chilkat.Email email;
        int i;
        for (i = 0; i < bundle.MessageCount - 0; i++)
        {
            email = bundle.GetEmail(i);

            System.Windows.Forms.ListViewItem itmp = new System.Windows.Forms.ListViewItem(email.From);
            System.Windows.Forms.ListViewItem.ListViewSubItem itms1 = new System.Windows.Forms.ListViewItem.ListViewSubItem(itmp, email.Subject);
            System.Windows.Forms.ListViewItem.ListViewSubItem itms2 = new System.Windows.Forms.ListViewItem.ListViewSubItem(itmp, email.FromName);


            itmp.SubItems.Add(itms1);
            itmp.SubItems.Add(itms2);

            listView1.Items.Add(itmp).Tag = i;



            richTextBox1.Text = email.Body;





        }

        // Save the email to an XML file
        bundle.SaveXml("email.xml");

Обновленный код

 Chilkat.MessageSet msgSet = imap.Search("ALL", true);
        bundle = imap.FetchBundle(msgSet);

        Chilkat.Email email;
        int i;
        for (i = 0; i < bundle.MessageCount; i++)
        {
            email = bundle.GetEmail(i);

            string[] row = new string[]{email.From,
                                                    email.Subject,email.FromName};


            object[] rows = new object[] { row };
            foreach (string[] rowArray in rows)
            {
                listView1.Rows.Add(rowArray);
            }

1 Ответ

0 голосов
/ 06 декабря 2010

Я думаю, вы делаете правильно только маленькую точку

Put a null check for bundle and email object. 

  for (i = 0; i < bundle.MessageCount - 0; i++)  m, why are you substracting 0 from bundle.MessageCount

ваш код прост, и он делает то, для чего он предназначен, поэтому зачем менять в это время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...