Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 230
1

Приём почты с почтового ящика

20.05.2016, 18:34. Просмотров 2598. Ответов 4
Метки нет (Все метки)

C#
1
2
3
4
5
6
7
8
9
10
11
            OpenPop.Pop3.Pop3Client pop = new Pop3Client();
            List<OpenPop.Mime.Message> list = new List<OpenPop.Mime.Message>();
            pop.Connect(PopAddress.Text, 995, true);
            pop.Authenticate(E_Mail.Text, Password.Text);
            for (int i = 1; i < pop.GetMessageCount(); i++)
            {
                dataGridView1.Rows.Add(1); 
                dataGridView1.Rows[i-1].Cells[0].Value = pop.GetMessage(i).Headers.From; 
                dataGridView1.Rows[i-1].Cells[1].Value = pop.GetMessage(i).Headers.DateSent; 
                dataGridView1.Rows[i-1].Cells[2].Value = pop.GetMessage(i).Headers.Subject;
            }
Проблема в том что эта прога не выводит c первого письма а начинает сразу со третьего, потом выводит второе, т.е. делает наоборот. При этом создаётся как и положено 3 строчки, так как на почтовом ящике в данный момент всего три письма, но последняя строчка пуста. Как сделать вывод всех писем с начиная с первого?
0
Миниатюры
Приём почты с почтового ящика   Приём почты с почтового ящика  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.05.2016, 18:34
Ответы с готовыми решениями:

Отправка сообщения на e-mail без собственного почтового ящика
возможно ли с компьютера (не имея почты) отправить текст на какую-то либо почту? Я уже просто нашел...

Отправка письма через Outlook с определенного почтового ящика
Всем привет! Создал форму для отправки письма через Outlook следующим образом: private void...

Как узнать pop\imap адрес почтового сервера, для почтового ящика через whois
Добрый вечер. Есть нетривиальная задача: Как узнать pop\imap адрес почтового сервера, для...

Проверка почтового ящика E-Mail
Здравствуйте. Ребята, такая проблема может кто-то сталкивался. Существует почтовый ящик, необходимо...

4
154 / 136 / 51
Регистрация: 28.11.2009
Сообщений: 460
Записей в блоге: 14
20.05.2016, 19:03 2
Darkness190, обойдите массив писем с конца и до 0 элемента. Очевидно, что класс Pop3Client считывает письма в обратном порядке. А третье письмо у вас не выводится скорей всего потому, что хранится под 0-ым индексом.
0
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 230
20.05.2016, 19:11  [ТС] 3
Nikto,
The messageNumber argument cannot have a value of zero or less. Valid messageNumber is in the range [1, messageCount]
Вот такая ошибка возникает если сделать вот так:
C#
1
2
3
4
5
6
7
for (int i = 0; i < pop.GetMessageCount(); i++)
            {
                dataGridView1.Rows.Add(1); 
                dataGridView1.Rows[i].Cells[0].Value = pop.GetMessage(i).Headers.From; // ОШИБКА!!!
                dataGridView1.Rows[i].Cells[1].Value = pop.GetMessage(i).Headers.DateSent; 
                dataGridView1.Rows[i].Cells[2].Value = pop.GetMessage(i).Headers.Subject;
            }
0
154 / 136 / 51
Регистрация: 28.11.2009
Сообщений: 460
Записей в блоге: 14
20.05.2016, 19:19 4
Darkness190, вот так должно заработать
C#
1
2
3
4
5
6
7
for (int i = 1; i < pop.GetMessageCount() + 1; i++)
{
     dataGridView1.Rows.Add(1); 
     dataGridView1.Rows[i-1].Cells[0].Value = pop.GetMessage(i).Headers.From; 
     dataGridView1.Rows[i-1].Cells[1].Value = pop.GetMessage(i).Headers.DateSent; 
     dataGridView1.Rows[i-1].Cells[2].Value = pop.GetMessage(i).Headers.Subject;
}
Т.к. индексация не с 0 как обычно, а с 1, то i должна доходить не до количества, а до количества + 1.
1
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 230
20.05.2016, 19:51  [ТС] 5
Nikto, Спасибо, работает. Осталось додумать как с первого письма выводить
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2016, 19:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Прием почты, исправить код
Нашел пример приема почты по протоколоу Pop3, но программа не работает нормально. Помогите выявить...

Забор почты из обычного почтового ящика силами сервера Lotus
Приветствую. Сложилась такая ситуация, пользователь организации имеет почтовый ящик на smtp/pop3...

Размер почтового ящика
Добрый день Подскажите пожалуйста как увеличить значение Max Size у почтового ящика до No Limit...

Сжатие почтового ящика
Не сжимается вручную почтовый ящик (права менеджера) - при нажатии на кнопку Сжать в статусбаре...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.