загрузить вложение с imap: BODY [1.3.1.2] и BODY.PEEK [1.3.1.2] возвращают значение null - PullRequest
0 голосов
/ 03 августа 2020

Мне нужно загрузить вложение с сервера imap в dart.

Это то, что я сделал:

  • правильно скачал список сообщений с помощью команды (UID BODY.PEEK[HEADER] FLAGS);
  • правильно загрузил отдельное сообщение с помощью команды (UID BODY[] BODYSTRUCTURE ENVELOPE FLAGS)

Теперь мне нужно загрузить одно вложение сообщения, и я пытаюсь использовать обе команды (BODY[1.3.1.2]) и (BODY.PEEK[1.3.1.2]) (кстати, в чем разница между этими двумя командами? Я не знаю).

Я использую библиотеку для получения сообщений, и я почти уверен, что путь к телу правильный.

Но когда я запускаю обе команды, я не получил сообщения. Это структура, которую я получаю от сервера (структура является собственностью библиотеки):

msg = id: [592]\n
    headers = null
    _headerRaw = null
    _isParsed = false
    bodyRaw = null
    text = null
    parts = null
    _contentTypeHeader = null
    _contentDispositionHeader = null
    multiPartBoundary = null
    rawLines = null
    sequenceId = 592
    uid = null
    modSequence = null
    flags = null
    internalDate = null
    size = null
    _from = null
    _sender = null
    _replyTo = null
    _to = null
    _cc = null
    _bcc = null
    body = null
    envelope = null

UPDATE Это ответ IMAP. Пытался отформатировать.

BODYSTRUCTURE
(
    (
        (text, plain, (charset, iso-8859-1), NIL, NIL, quoted-printable, 339, 8, NIL, (inline, NIL), NIL, NIL),
        (application, xml, (name, daticert.xml), NIL, NIL, base64, 1072, NIL, (inline, (filename, daticert.xml)), NIL, NIL),
        (message, rfc822, (name, postacert.eml), NIL, NIL, 7bit, 46914,
            (
                Fri, 31 Jul 2020 14:19:22 +0200, test message with pdf,
                (
                    (Team SRL, NIL, team, pec.net)
                ),
                (
                    (Team SRL, NIL, team, pec.net)
                ),
                (
                    (Team SRL, NIL, team, pec.net)
                ),
                (
                    (NIL, NIL, app.test1, test.example.com)
                ),
                NIL, NIL, NIL, <string.20200731141923.20215.06.1.15@pec-example.com>
            ),
            (
                (
                    (text, plain, (charset, iso-8859-15, format, flowed), NIL, NIL, quoted-printable, 799, 22, NIL, NIL, NIL, NIL),
                    (
                        (text, html, (charset, iso-8859-15), NIL, NIL, quoted-printable, 1708, 40, NIL, NIL, NIL, NIL),
                        (image, png, (name, logo team_300x87.png), <part1.1F93CB4D.4CD8B980@pec.example>, NIL, base64, 8632, NIL, (inline, (filename, logo team_300x87.png)), NIL, NIL),
                        related,
                        (boundary, ------------F1A74D7D44BD84106B4E0569),
                        NIL, NIL, NIL
                    ),
                    alternative,
                    (boundary, ------------6D98B2FDB8B24026063A27F9),
                    NIL, NIL, NIL
                ),
                (application, pdf, (name, MyPdf.pdf), NIL, NIL, base64, 33754, NIL, (attachment, (filename, MyPdf.pdf)), NIL, NIL),
                mixed,
                (boundary, ------------A5B0A8B4F69F8BD959B758D0),
                NIL, (it-IT), NIL
            ),
            810, NIL, (inline, (filename, postacert.eml)), NIL, NIL
        ),
        mixed,
        (boundary, ----------=_1596197964-20215-18),
        NIL, NIL, NIL
    ),
    (application, pkcs7-signature, (name, smime.p7s), NIL, NIL, base64, 9454, NIL, (attachment, (filename, smime.p7s)), NIL, NIL),
    signed,
    (protocol, application/pkcs7-signature, micalg, sha256, boundary, ----------=_1596197964-20215-19),
    NIL, NIL, NIL
)

Мне нужен MyPdf.pdf

...