Получение всех писем в список с использованием IMAP - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь создать почтовое приложение во Flutter, сейчас я тестирую серверную часть, а затем хочу интегрировать его в свое приложение.

Я использую IMAP для получения всех своих электронных писем из моего университетаи вставьте их в список с помощью класса Emails с такими параметрами, как тема, дата, от, до и тело (все типы строк).

    List emails;
  Future<EMails> getEmails() async {
    ImapFolder inbox = await client.getFolder("inbox");
    EMails list;
    for (var i = inbox.mailCount; i > 0; i--) {
      list.subject = await inbox.fetch(["BODY.PEEK[HEADER.FIELDS (SUBJECT)]"],
          messageIds: [i]) as String; //gets the subject
      list.date = await inbox.fetch(["BODY.PEEK[HEADER.FIELDS (Date)]"],
          messageIds: [i]) as String; //gets the Date
      list.from = await inbox.fetch(["BODY.PEEK[HEADER.FIELDS (From)]"],
          messageIds: [i]) as String; //gets the From
      list.to =
          await inbox.fetch(["BODY.PEEK[HEADER.FIELDS (To)]"], messageIds: [i])
              as String; //gets the To
      list.body = await inbox.fetch(["RFC822.TEXT"], messageIds: [i]) as String;
      emails.add(list);
    }
    return list;
  }

Проблема заключается в том, что я не могу преобразовать свои извлекаемые данныев строки.https://i.imgur.com/vP91ZG1.png

Ответы [ 2 ]

1 голос
/ 08 мая 2019

.fetch возвращает Future, но похоже, что вы его еще не ждали.Добавьте await перед каждым inbox.fetch.

Это задокументировано в https://pub.dev/documentation/imap_client/latest/imap_client/ImapFolder-class.html

0 голосов
/ 03 июня 2019

.fetch возвращает карту>

Map<int, Map<String, dynamic>> subject =  await inbox.fetch(["BODY.PEEK[HEADER.FIELDS (SUBJECT)]"],messageIds: [i]);

var mapSubjectEmail = subject[i];
var mapEmail = mapSubjectEmail.values;
var subjectEmail = mapEmail.first as String;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...