![]() |
Chilkat • HOME • Android™ • AutoIt • C • C# • C++ • Chilkat2-Python • CkPython • Classic ASP • DataFlex • Delphi DLL • Go • Java • Node.js • Objective-C • PHP Extension • Perl • PowerBuilder • PowerShell • PureBasic • Ruby • SQL Server • Swift • Tcl • Unicode C • Unicode C++ • VB.NET • VBScript • Visual Basic 6.0 • Visual FoxPro • Xojo Plugin
(Classic ASP) IMAP Read PEC Email of Aruba and Extract the Invoice XML FilesIMAP Read PEC Email of Aruba and Extract the Invoice XML Files.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <% ' This example requires the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Imap") set imap = Server.CreateObject("Chilkat.Imap") ' Connect using TLS. imap.Ssl = 1 imap.Port = 993 success = imap.Connect("imap.example.com") If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( imap.LastErrorText) & "</pre>" Response.End End If ' Authenticate success = imap.Login("email_account_login","email_account_password") If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( imap.LastErrorText) & "</pre>" Response.End End If ' Select an IMAP mailbox success = imap.SelectMailbox("Inbox/postacert") If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( imap.LastErrorText) & "</pre>" Response.End End If ' Search for messages having "POSTA CERTIFICATA: Invio File" in the subject. fetchUids = 1 ' messageSet is a Chilkat.MessageSet Set messageSet = imap.Search("SUBJECT ""POSTA CERTIFICATA: Invio File""",fetchUids) If (imap.LastMethodSuccess = 0) Then Response.Write "<pre>" & Server.HTMLEncode( imap.LastErrorText) & "</pre>" Response.End End If If (messageSet.Count < 1) Then Response.Write "<pre>" & Server.HTMLEncode( "No messages found.") & "</pre>" Response.End 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. ' email is a Chilkat.Email Set email = imap.FetchSingle(messageSet.GetId(0),messageSet.HasUids) If (imap.LastMethodSuccess = 0) Then Response.Write "<pre>" & Server.HTMLEncode( imap.LastErrorText) & "</pre>" Response.End End If ' The email should contain an attached email. ' The Invoice XML is contained within the attached email. ' attachedEmail is a Chilkat.Email Set attachedEmail = email.GetAttachedMessage(0) If (email.LastMethodSuccess = 0) Then Response.Write "<pre>" & Server.HTMLEncode( email.LastErrorText) & "</pre>" Response.End End If ' Get the MIME of the attached email.. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.StringBuilder") set sbMime = Server.CreateObject("Chilkat.StringBuilder") success = attachedEmail.GetMimeSb(sbMime) ' Load it into a Chilkat MIME object. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Mime") set mime = Server.CreateObject("Chilkat.Mime") success = mime.LoadMimeSb(sbMime) ' Examine the structure of the MIME. Response.Write "<pre>" & Server.HTMLEncode( mime.GetStructure("text")) & "</pre>" ' 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 ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.BinData") set bdP7m = Server.CreateObject("Chilkat.BinData") ' Get the 2nd sub-part, at index 1 because index 0 is the 1st sub-part. ' mimeP7m is a Chilkat.Mime Set mimeP7m = mime.GetPart(1) If (mime.LastMethodSuccess <> 1) Then Response.Write "<pre>" & Server.HTMLEncode( "Failed to get 2nd sub-part. Perhaps the MIME does not have a 2nd sub-part?") & "</pre>" Response.End End If success = mimeP7m.GetBodyBd(bdP7m) ' Verify the signature, which also extracts the content contained within the opaque signature. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Crypt2") set crypt = Server.CreateObject("Chilkat.Crypt2") success = crypt.OpaqueVerifyBd(bdP7m) If (success = 0) Then Response.Write "<pre>" & Server.HTMLEncode( crypt.LastErrorText) & "</pre>" Response.End End If ' The bdP7m now contains the Invoice XML. ' Load it into an XML object. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Xml") set xml = Server.CreateObject("Chilkat.Xml") success = xml.LoadBd(bdP7m,1) Response.Write "<pre>" & Server.HTMLEncode( xml.GetXml()) & "</pre>" ' 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 Response.Write "<pre>" & Server.HTMLEncode( "success.") & "</pre>" %> </body> </html> |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.