Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Go) Reading Unread POP3 EmailThe POP3 protocol does not provide the ability to ask the server which emails are "unread". Furthermore, a pure POP3 server does not even keep this information. Some servers, such as Exchange Server, expose both POP3 and IMAP interfaces. In these cases, information about read/unread status exists on the server, but it is only available via the IMAP protocol. Email clients such as Outlook and Thunderbird keep read/unread information on the client computer. This example demonstrates how UIDLs can be saved to track and read "unread" email.
// This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // The mailman object is used for receiving (POP3) // and sending (SMTP) email. mailman := chilkat.NewMailMan() // Set the POP3 server's hostname mailman.SetMailHost("pop.someMailServer.com") // Set the POP3 login/password. mailman.SetPopUsername("***") mailman.SetPopPassword("***") // You may keep a list of already-seen UIDLs in a text file: // If this is the first time you're running this example, // create an empty text file named "seenUidls.txt" saSeenUidls := chilkat.NewStringArray() success := saSeenUidls.LoadFromFile("seenUidls.txt") if success != true { fmt.Println("failed to load seenUidls.txt") mailman.DisposeMailMan() saSeenUidls.DisposeStringArray() return } // Get the complete list of UIDLs on the mail server. saUidls := mailman.GetUidls() if mailman.LastMethodSuccess() == false { fmt.Println(mailman.LastErrorText()) mailman.DisposeMailMan() saSeenUidls.DisposeStringArray() return } // Create a new string array object (it's an object, not an actual array) // and add the UIDLs from saUidls that aren't already seen. saUnseenUidls := chilkat.NewStringArray() i := 0 n := saUidls.Count() for i < n { if saSeenUidls.Contains(*saUidls.GetString(i)) != true { success = saUnseenUidls.Append(*saUidls.GetString(i)) } i = i + 1 } if saUnseenUidls.Count() == 0 { fmt.Println("No unseen emails!") saUidls.DisposeStringArray() mailman.DisposeMailMan() saSeenUidls.DisposeStringArray() saUnseenUidls.DisposeStringArray() return } // Download in full the unseen emails: bundle := mailman.FetchMultiple(saUnseenUidls) if mailman.LastMethodSuccess() == false { fmt.Println(mailman.LastErrorText()) saUidls.DisposeStringArray() mailman.DisposeMailMan() saSeenUidls.DisposeStringArray() saUnseenUidls.DisposeStringArray() return } // email is a Email i = 0 for i < bundle.MessageCount() { email := bundle.GetEmail(i) fmt.Println(email.From()) fmt.Println(email.Subject()) fmt.Println("----") email.DisposeEmail() i = i + 1 } // Save saUidls to "seenUidls.txt" success = saUidls.SaveToFile("seenUidls.txt") saUidls.DisposeStringArray() mailman.DisposeMailMan() saSeenUidls.DisposeStringArray() saUnseenUidls.DisposeStringArray() |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.