Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var imapsession:MCOIMAPSession = MCOIMAPSession()
- func prepareImapSession()
- {
- // CONFIGURE THAT DEPENDING OF YOUR NEEDS
- imapsession.hostname = imapHostname // String
- imapsession.username = userName // String
- imapsession.password = password // String
- imapsession.port = portIMAP // UInt32 number
- imapsession.authType = MCOAuthType.saslLogin
- imapsession.connectionType = MCOAuthType.saslLogin
- }
- func useImapWithUIDS(startPoint start: UInt64, whatProtocol wProtocol: String)
- {
- // There is more than one option here, explore depending of your needs
- let requestKind : MCOIMAPMessagesRequestKind = .headers
- let folder : String = "INBOX"
- // HERE ALSO EXPLORE DEPENDING OF YOUR NEEDS, RANGE IT IS THE RANGE OF THE UIDS THAT YOU WANT TO FETCH, I SUGGEST TO YOU TO CHANGE THE // NUMBER ONE IF YOU HAVE A LOWER BOUND TO FETCH EMAIL
- let uids : MCOIndexSet = MCOIndexSet(range: MCORangeMake(1, UINT64_MAX))
- let fetchOperation = imapsession.fetchMessagesOperation(withFolder: folder, requestKind: requestKind, uids: uids)
- fetchOperation?.start
- { (err, msg, vanished) -> Void in
- if (err != nil)
- {
- error = err
- NSLog((err?.localizedDescription)!)
- }
- else
- {
- guard let msgs = msg as? [MCOIMAPMessage]
- else
- {
- print("ERROR GETTING THE MAILS")
- return
- }
- for i in 0..<msgs.count
- {
- // THE SUBJECT
- let subject = msgs[i].header.subject
- // THE uid for this email. The uid is unique for one email
- let uid = msgs[i].uid
- // The sequenceNumber like the nomber say it is the sequence for the emails in the INBOX from the first one // (sequenceNumber = 1) to the last one , it not represent always the same email. Because if you delete one email then //next one will get the sequence number of that email that was deleted
- let sequenceNumber = msgs[i].sequenceNumber
- }
- }
- }
- // MARK: - EXTRACT THE CONTENT OF ONE EMAIL, IN THIS FUNCTION YOU NEED THE uid, THE UNIQUE NUMBER FOR ONE EMAIL
- func useImapFetchContent(uidToFetch uid: UInt32)
- {
- let operation: MCOIMAPFetchContentOperation = imapsession.fetchMessageOperation(withFolder: "INBOX", uid: uid)
- operation.start { (Error, data) in
- if (Error != nil)
- {
- NSLog("ERROR")
- return
- }
- let messageParser: MCOMessageParser = MCOMessageParser(data: data)
- // IF YOU HAVE ATTACHMENTS USE THIS
- let attachments = messageParser.attachments() as? [MCOAttachment]
- // THEN YOU NEED THIS PROPERTIE, IN THIS EXAMPLE I TAKE THI FIRST, USE WHAT EVER YOU WANT
- let attachData = attachments?.first?.data
- // FOR THE MESSAGEPARSER YOU CAN EPLORE MORE THAN ONE OPTION TO OBTAIN THE TEXT
- let msgPlainBody = messageParser.plainTextBodyRendering()
- }
Add Comment
Please, Sign In to add comment