Swift
Swift
IMAP Download All Email One at a Time
Demonstrates how to download every email in an IMAP mailbox one at a time as a MIME string or as an email object. (The MIME contains the full contents of the email including all attachments.)Chilkat Swift Downloads
func chilkatTest() {
var success: Bool = false
let imap = CkoImap()!
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// Connect to an IMAP server.
// Use TLS
imap.ssl = true
imap.port = 993
success = imap.connect(hostname: "imap.example.com")
if success == false {
print("\(imap.lastErrorText!)")
return
}
// Login
success = imap.login(login: "myLogin", password: "myPassword")
if success == false {
print("\(imap.lastErrorText!)")
return
}
// Select an IMAP mailbox
success = imap.selectMailbox(mailbox: "Inbox")
if success == false {
print("\(imap.lastErrorText!)")
return
}
// Once the mailbox is selected, the NumMessages property
// will contain the number of messages in the mailbox.
// You may loop from 1 to NumMessages to
// fetch each message by sequence number.
var bUid: Bool = false
var mimeStr: String?
var i: Int
var n: Int = imap.numMessages.intValue
for i = 1; i <= n; i++ {
// Download the email by sequence number.
mimeStr = imap.fetchSingle(asMime: i, bUid: bUid)
// ... your application may process each MIME string...
}
// An alternative is to download each email in the form of an
// email object, like this:
let email = CkoEmail()!
for i = 1; i <= n; i++ {
// Download the email by sequence number.
success = imap.fetchEmail(headerOnly: false, msgId: i, bUid: bUid, email: email)
// ... your application may process the email object...
}
// Disconnect from the IMAP server.
success = imap.disconnect()
}