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) IMAP Read PEC Email of Aruba and Extract the Invoice XML FilesIMAP Read PEC Email of Aruba and Extract the Invoice XML Files.
' 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 using TLS. imap.Ssl = True imap.Port = 993 Dim success As Boolean = Await imap.ConnectAsync("imap.example.com") If (success = False) Then Debug.WriteLine(imap.LastErrorText) Exit Sub End If ' Authenticate success = Await imap.LoginAsync("email_account_login","email_account_password") If (success = False) Then Debug.WriteLine(imap.LastErrorText) Exit Sub End If ' Select an IMAP mailbox success = Await imap.SelectMailboxAsync("Inbox/postacert") If (success = False) Then Debug.WriteLine(imap.LastErrorText) Exit Sub End If ' Search for messages having "POSTA CERTIFICATA: Invio File" in the subject. Dim fetchUids As Boolean = True Dim messageSet As Chilkat.MessageSet = Await imap.SearchAsync("SUBJECT ""POSTA CERTIFICATA: Invio File""",fetchUids) If (imap.LastMethodSuccess = False) Then Debug.WriteLine(imap.LastErrorText) Exit Sub End If If (messageSet.Count < 1) Then Debug.WriteLine("No messages found.") Exit Sub End If ' For our example, we'll process only the 1st email in the messageSet. ' Download the MIME source of the email into a StringBuilder object. Dim email As Chilkat.Email = Await imap.FetchSingleAsync(messageSet.GetId(0),messageSet.HasUids) If (imap.LastMethodSuccess = False) Then Debug.WriteLine(imap.LastErrorText) Exit Sub End If ' The email should contain an attached email. ' The Invoice XML is contained within the attached email. Dim attachedEmail As Chilkat.Email = email.GetAttachedMessage(0) If (email.LastMethodSuccess = False) Then Debug.WriteLine(email.LastErrorText) Exit Sub End If ' Get the MIME of the attached email.. Dim sbMime As New Chilkat.StringBuilder success = attachedEmail.GetMimeSb(sbMime) ' Load it into a Chilkat MIME object. Dim mime As New Chilkat.Mime success = mime.LoadMimeSb(sbMime) ' Examine the structure of the MIME. Debug.WriteLine(mime.GetStructure("text")) ' The MIME has this structure: ' multipart/mixed ' application/octet-stream ' application/octet-stream <-- This is where the XML is contained. It is within an opaque signature. ' text/plain ' The 2nd application/octet-stream MIME header looks like this: ' ------=_Part_329673_-1348225228.1579889273592 ' Content-Type: application/octet-stream; name="SM99999_99aaa.xml.p7m" ' Content-Transfer-Encoding: base64 ' Content-Disposition: attachment; filename="SM99999_99aaa.xml.p7m" ' Let's get the binary content of the .p7m Dim bdP7m As New Chilkat.BinData ' Get the 2nd sub-part, at index 1 because index 0 is the 1st sub-part. Dim mimeP7m As Chilkat.Mime = mime.GetPart(1) If (mime.LastMethodSuccess <> True) Then Debug.WriteLine("Failed to get 2nd sub-part. Perhaps the MIME does not have a 2nd sub-part?") Exit Sub End If success = mimeP7m.GetBodyBd(bdP7m) ' Verify the signature, which also extracts the content contained within the opaque signature. Dim crypt As New Chilkat.Crypt2 success = crypt.OpaqueVerifyBd(bdP7m) If (success = False) Then Debug.WriteLine(crypt.LastErrorText) Exit Sub End If ' The bdP7m now contains the Invoice XML. ' Load it into an XML object. Dim xml As New Chilkat.Xml success = xml.LoadBd(bdP7m,True) Debug.WriteLine(xml.GetXml()) ' We have XML such as the following: ' ' <?xml version="1.0" encoding="windows-1252"?> ' <?xml-stylesheet type="text/xsl" href="fatturapa_v1.2.xsl"?> ' <p:FatturaElettronica versione="FPR12" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" ' xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2" ' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> ' <FatturaElettronicaHeader> ' ... ' </FatturaElettronicaHeader> ' <FatturaElettronicaBody> ' ... ' </FatturaElettronicaBody> ' </p:FatturaElettronica> ' Use this online tool to generate parsing code from sample XML: ' Generate Parsing Code from XML Debug.WriteLine("success.") |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.