Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(VB.NET UWP/WinRT) Fetch Full Email Given Email HeaderWhen email headers are fetched using UIDs (not sequence numbers), then the resultant email object (containing only the header) will include auto-generated ckx-imap-* header fields to record information about the uid, attachments, etc. The IMAP UID of the email will be available in the "ckx-imap-uid" header. There will also be a "ckx-imap-isUid" header field having the value "YES" or "NO". If the email header was downloaded by UID, then "ckx-imap-isUID" will contain the value "YES" and the value of the "ckx-imap-uid" header field is the IMAP UID. If the "ckx-imap-isUID" header has a value of "NO", then the "ckx-imap-uid" header field represents the sequence number. (Sequence numbers of emails on the server can change over time, depending on whether emails are deleted. UIDs must be used to ensure that the correct full email is downloaded.) The Chilkat Email object provides a GetImapUid method to return the UID from the ckx-imap-uid header. This can then be used to download the full email using the FetchSingle method. Assuming the UID is known, download a single email by UID from an IMAP mail server.
' This example requires the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. Dim imap As New Chilkat.Imap ' Connect to an IMAP server. ' Use TLS imap.Ssl = True imap.Port = 993 Dim success As Boolean = Await imap.ConnectAsync("imap.someMailServer.com") If (success <> True) Then Debug.WriteLine(imap.LastErrorText) Exit Sub End If ' Login success = Await imap.LoginAsync("***","***") If (success <> True) Then Debug.WriteLine(imap.LastErrorText) Exit Sub End If ' Select an IMAP mailbox success = Await imap.SelectMailboxAsync("Inbox") If (success <> True) Then Debug.WriteLine(imap.LastErrorText) Exit Sub End If Dim emailHeader As Chilkat.Email Dim emailFull As Chilkat.Email Dim uid As Integer = 2014 Dim isUid As Boolean = True ' Fetch only the email header emailHeader = Await imap.FetchSingleHeaderAsync(uid,isUid) If (imap.LastMethodSuccess = True) Then ' Now fetch the full email Dim uidFromCkxHeader As Integer = emailHeader.GetImapUid() If (uidFromCkxHeader < 0) Then ' Failed. Debug.WriteLine("No ckx-imap-uid header was found.") Exit Sub End If emailFull = Await imap.FetchSingleAsync(uidFromCkxHeader,True) If (imap.LastMethodSuccess = True) Then ' OK, we have the full email, do whatever we want... End If End If ' Disconnect from the IMAP server. success = Await imap.DisconnectAsync() |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.