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
(DataFlex) 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.
Use ChilkatAx-win32.pkg Procedure Test Handle hoMailman Handle hoSaSeenUidls Boolean iSuccess Variant vSaUidls Handle hoSaUidls Variant vSaUnseenUidls Handle hoSaUnseenUidls Integer i Integer n Variant vBundle Handle hoBundle Variant vEmail Handle hoEmail String sTemp1 Integer iTemp1 Boolean bTemp1 // 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. Get Create (RefClass(cComChilkatMailMan)) To hoMailman If (Not(IsComObjectCreated(hoMailman))) Begin Send CreateComObject of hoMailman End // Set the POP3 server's hostname Set ComMailHost Of hoMailman To "pop.someMailServer.com" // Set the POP3 login/password. Set ComPopUsername Of hoMailman To "***" Set ComPopPassword Of hoMailman To "***" // 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" Get Create (RefClass(cComCkStringArray)) To hoSaSeenUidls If (Not(IsComObjectCreated(hoSaSeenUidls))) Begin Send CreateComObject of hoSaSeenUidls End Get ComLoadFromFile Of hoSaSeenUidls "seenUidls.txt" To iSuccess If (iSuccess <> True) Begin Showln "failed to load seenUidls.txt" Procedure_Return End // Get the complete list of UIDLs on the mail server. Get ComGetUidls Of hoMailman To vSaUidls If (IsComObject(vSaUidls)) Begin Get Create (RefClass(cComCkStringArray)) To hoSaUidls Set pvComObject Of hoSaUidls To vSaUidls End Get ComLastMethodSuccess Of hoMailman To bTemp1 If (bTemp1 = False) Begin Get ComLastErrorText Of hoMailman To sTemp1 Showln sTemp1 Procedure_Return End // 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. Get Create (RefClass(cComCkStringArray)) To hoSaUnseenUidls If (Not(IsComObjectCreated(hoSaUnseenUidls))) Begin Send CreateComObject of hoSaUnseenUidls End Move 0 To i Get ComCount Of hoSaUidls To n While (i < n) Get ComContains Of hoSaSeenUidls (ComGetString(hoSaUidls, i)) To bTemp1 If (bTemp1 <> True) Begin Get ComGetString Of hoSaUidls i To sTemp1 Get ComAppend Of hoSaUnseenUidls sTemp1 To iSuccess End Move (i + 1) To i Loop Get ComCount Of hoSaUnseenUidls To iTemp1 If (iTemp1 = 0) Begin Showln "No unseen emails!" Send Destroy of hoSaUidls Procedure_Return End // Download in full the unseen emails: Get pvComObject of hoSaUnseenUidls to vSaUnseenUidls Get ComFetchMultiple Of hoMailman vSaUnseenUidls To vBundle If (IsComObject(vBundle)) Begin Get Create (RefClass(cComChilkatEmailBundle)) To hoBundle Set pvComObject Of hoBundle To vBundle End Get ComLastMethodSuccess Of hoMailman To bTemp1 If (bTemp1 = False) Begin Get ComLastErrorText Of hoMailman To sTemp1 Showln sTemp1 Send Destroy of hoSaUidls Procedure_Return End Move 0 To i While (i < (ComMessageCount(hoBundle))) Get ComGetEmail Of hoBundle i To vEmail If (IsComObject(vEmail)) Begin Get Create (RefClass(cComChilkatEmail)) To hoEmail Set pvComObject Of hoEmail To vEmail End Get ComFrom Of hoEmail To sTemp1 Showln sTemp1 Get ComSubject Of hoEmail To sTemp1 Showln sTemp1 Showln "----" Send Destroy of hoEmail Move (i + 1) To i Loop // Save saUidls to "seenUidls.txt" Get ComSaveToFile Of hoSaUidls "seenUidls.txt" To iSuccess Send Destroy of hoSaUidls End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.