Вывод писем (работа с IMAP) - C#
Формулировка задачи:
Всем привет. Хочу научится работать с Imap. с помощью dll mail.dll (limilabs.com)
Прохожу успешно логин. и пытаюсь вывести письма. после вывода первых писем, вылазиет ошибка.
полагаю, нужна синхронизация. но зачем? У меня 1 поток!
using System; using System.Collections.Generic; using System.Threading.Tasks; using System.Windows.Forms; using Limilabs.Mail; using Limilabs.Client.IMAP; using Limilabs.Mail.MIME; using Limilabs.Mail.Headers; namespace WindowsFormsApplication4 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void conn_Click(object sender, EventArgs e) { getm.RunWorkerAsync(); } private void getm_DoWork(object sender, DoWorkEventArgs e) { using (Imap imap = new Imap()) { imap.Connect("imap.yandex.ru"); try { imap.Login(login.Text, pass.Text); MessageBox.Show("Все ок!"); } catch { MessageBox.Show("Неверный логин или пароль", "Ошибка!"); } imap.SelectInbox(); List<long> uids = imap.Search(Flag.Unseen); foreach (long uid in uids) { string eml = imap.GetMessageByUID(uid); IMail email = new MailBuilder() .CreateFromEml(eml); // From int i = 0; foreach (MailBox m in email.From) { addrow(m.Address, m.Name); } } imap.Close(); } } private void addrow(string adress, string subj) { int i = 0; i = listView1.Items.Add(adress).Index; listView1.Items[i].SubItems.Add(subj); } } }
Решение задачи: «Вывод писем (работа с IMAP)»
textual
Листинг программы
Invoke(new Action(() => i = listView1.Items.Add(adress).Index)); Invoke(new Action(() => listView1.Items[i].SubItems.Add(subj)));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д