Как получить тело сообщения и последнее письмо в mailcore2? - PullRequest
0 голосов
/ 18 мая 2019

Я хочу получать текст сообщения и последнее полученное электронное письмо или невидимые электронные письма в Swift 4. Я ищу его, но каждый код в Objective-C или на любых других старых языках. В Gmail, Yahoo, Outlook.

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

var uidSet = MCOIndexSet(range: MCORangeMake(1, UINT64_MAX))

var fetchOp: MCOIMAPFetchMessagesOperation? = session.fetchMessagesByUIDOperation(withFolder: "INBOX", requestKind: MCOIMAPMessagesRequestKind.headers, uids: uidSet)

fetchOp?.start({ err, msgs, vanished in
    //print(msgs)
    let msgs = msgs as? [MCOIMAPMessage]

    for msgs in msgs!{

Я получил все электронные письма, которые находятся в моем почтовом ящике, но я хочу только невидимые сообщения. И главная проблема в том, что мне не удалось получить тело сообщения.

1 Ответ

0 голосов
/ 19 мая 2019
   var session = MCOIMAPSession() // Make Global
    session.hostname = "imap.gmail.com"
    session.port = 993
    session.username = "example@gmail.com"
    session.password = "**********"
    session.connectionType = MCOConnectionType.TLS
    let requestKind: MCOIMAPMessagesRequestKind = [.headers, .flags]

    var uidSet = MCOIndexSet(range: MCORangeMake(1, UINT64_MAX))

    var fetchOp: MCOIMAPFetchMessagesOperation? = session.fetchMessagesByUIDOperation(withFolder: "INBOX", requestKind: MCOIMAPMessagesRequestKind.headers, uids: uidSet)

    fetchOp?.start{( err, msgs, vanished) -> Void in


        //print(msgs)
        let msgs = msgs as? [MCOIMAPMessage]


        for msgs in msgs!{

            // THE uid for this email. The uid is unique for one email
            let uiid = msgs.uid

            useImapFetchContent(uidToFetch: uiid)

        }
    }

func useImapFetchContent(uidToFetch uid: UInt32)
{

    let operation = session.fetchParsedMessageOperation(withFolder: "INBOX", uid: UInt32(uid))

    operation?.start{( error, messageParser)-> Void in
        if error == nil {
            let returnValue = messageParser!.plainTextBodyRenderingAndStripWhitespace(false)
        }
        let subject = messageParser?.header.subject
        print(subject)
        let from = messageParser?.header.from
        print(from)
        let to = messageParser?.header.to
        print(to)
        let msgPlainBody = messageParser?.plainTextBodyRendering()
        print("BODY")
        print(msgPlainBody)
    }   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...