|  | 
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
| (PHP Extension) IMAP Read PEC Email of Aruba and Extract the Invoice XML FilesIMAP Read PEC Email of Aruba and Extract the Invoice XML Files. Note: This example requires Chilkat v11.0.0 or greater. 
 <?php include("chilkat.php"); $success = false; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. $imap = new CkImap(); // Connect using TLS. $imap->put_Ssl(true); $imap->put_Port(993); $success = $imap->Connect('imap.example.com'); if ($success == false) { print $imap->lastErrorText() . "\n"; exit; } // Authenticate $success = $imap->Login('email_account_login','email_account_password'); if ($success == false) { print $imap->lastErrorText() . "\n"; exit; } // Select an IMAP mailbox $success = $imap->SelectMailbox('Inbox/postacert'); if ($success == false) { print $imap->lastErrorText() . "\n"; exit; } // Search for messages having "POSTA CERTIFICATA: Invio File" in the subject. $fetchUids = true; $messageSet = new CkMessageSet(); $success = $imap->QueryMbx('SUBJECT \'POSTA CERTIFICATA: Invio File\'',$fetchUids,$messageSet); if ($success == false) { print $imap->lastErrorText() . "\n"; exit; } if ($messageSet->get_Count() < 1) { print 'No messages found.' . "\n"; exit; } // 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 = new CkEmail(); $success = $imap->FetchEmail(false,$messageSet->GetId(0),$messageSet->get_HasUids(),$email); if ($success == false) { print $imap->lastErrorText() . "\n"; exit; } // The email should contain an attached email. // The Invoice XML is contained within the attached email. $attachedEmail = new CkEmail(); $success = $email->GetAttachedEmail(0,$attachedEmail); if ($success == false) { print $email->lastErrorText() . "\n"; exit; } // Get the MIME of the attached email.. $sbMime = new CkStringBuilder(); $success = $attachedEmail->GetMimeSb($sbMime); // Load it into a Chilkat MIME object. $mime = new CkMime(); $success = $mime->LoadMimeSb($sbMime); // Examine the structure of the MIME. print $mime->getStructure('text') . "\n"; // 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 $bdP7m = new CkBinData(); // Get the 2nd sub-part, at index 1 because index 0 is the 1st sub-part. $mimeP7m = new CkMime(); $success = $mime->PartAt(1,$mimeP7m); if ($success == false) { print $mime->lastErrorText() . "\n"; exit; } if ($mime->get_LastMethodSuccess() != true) { print 'Failed to get 2nd sub-part. Perhaps the MIME does not have a 2nd sub-part?' . "\n"; exit; } $success = $mimeP7m->GetBodyBd($bdP7m); // Verify the signature, which also extracts the content contained within the opaque signature. $crypt = new CkCrypt2(); $success = $crypt->OpaqueVerifyBd($bdP7m); if ($success == false) { print $crypt->lastErrorText() . "\n"; exit; } // The bdP7m now contains the Invoice XML. // Load it into an XML object. $xml = new CkXml(); $success = $xml->LoadBd($bdP7m,true); print $xml->getXml() . "\n"; // 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 print 'success.' . "\n"; ?> | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.