Go
Go
Subscribe to Mailboxes and List Subscribed Mailboxes
See more IMAP Examples
Demonstrates how to list subscribed mailboxes, and unsubscribe/subscribe to a mailbox.Chilkat Go Downloads
success := false
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
imap := chilkat.NewImap()
// Connect to an IMAP server.
// Use TLS
imap.SetSsl(true)
imap.SetPort(993)
success = imap.Connect("imap.example.com")
if success == false {
fmt.Println(imap.LastErrorText())
imap.DisposeImap()
return
}
// Login
success = imap.Login("myLogin","myPassword")
if success == false {
fmt.Println(imap.LastErrorText())
imap.DisposeImap()
return
}
// First examine the already subscribed mailboxes.
refName := ""
wildcardedMailbox := "*"
subscribed := true
mboxes := chilkat.NewMailboxes()
success = imap.MbxList(subscribed,refName,wildcardedMailbox,mboxes)
if success == false {
fmt.Println(imap.LastErrorText())
imap.DisposeImap()
mboxes.DisposeMailboxes()
return
}
i := 0
for i < mboxes.Count() {
fmt.Println(*mboxes.GetName(i))
i = i + 1
}
fmt.Println("----")
// Sample output.
// INBOX
// INBOX/recent
// INBOX/misc
// INBOX/misc/solutions
// ...
// Outbox
// Deleted Items
// Sent Items
// Drafts
// Junk E-mail
// Trash
// Sent
// Templates
// Let's unsubscribe to "INBOX/misc/solutions".
success = imap.Unsubscribe("INBOX/misc/solutions")
if success == false {
fmt.Println(imap.LastErrorText())
imap.DisposeImap()
mboxes.DisposeMailboxes()
return
}
// Get the list of subscribed mailboxes again to verify that "INBOX/misc/solutions" is missing.
success = imap.MbxList(subscribed,"","INBOX/misc*",mboxes)
if success == false {
fmt.Println(imap.LastErrorText())
imap.DisposeImap()
mboxes.DisposeMailboxes()
return
}
i = 0
for i < mboxes.Count() {
fmt.Println(*mboxes.GetName(i))
i = i + 1
}
fmt.Println("----")
// Re-subscribe to "INBOX/misc/solutions".
success = imap.Subscribe("INBOX/misc/solutions")
if success == false {
fmt.Println(imap.LastErrorText())
imap.DisposeImap()
mboxes.DisposeMailboxes()
return
}
// Get the list of subscribed mailboxes again to verify that "INBOX/misc/solutions" is back in the list.
success = imap.MbxList(subscribed,"","INBOX/misc*",mboxes)
if success == false {
fmt.Println(imap.LastErrorText())
imap.DisposeImap()
mboxes.DisposeMailboxes()
return
}
i = 0
for i < mboxes.Count() {
fmt.Println(*mboxes.GetName(i))
i = i + 1
}
fmt.Println("----")
// Disconnect from the IMAP server.
success = imap.Disconnect()
imap.DisposeImap()
mboxes.DisposeMailboxes()