G4MS Release Notes

v1.00 - Original  
v1.10 - Updated JSON parsing routines
v1.20 - Update Service Registration to use shorter URL (from our site)
        Added scope of *OUTLOOKSMTP to allow use of OAuth 2.0 in MAILTOOL
         when using outlook mail servers. 
v1.30 - Updated to check for expiring token 2 minutes before instead of 1.
         Updated _list and _upload functions to return a -2 if the error
         was expired token.
v2.00 - Updated licensing to subscription based.
        Added folder to G4MSLSTFIL command to subset results by folder name.
        Replace JSON parsing with the IBM i port of the YAJL JSON parser provided
         by Scott Klement.
v2.01 - Added file reorganization.
        Added REDO option to G4MSREGSVC command to allow you to re-register a 
         a service if the refresh token becomes invalid.
v3.00 - Added scope of *OFFICE365EMAIL which allows sending emails using Microsoft
         APIs included in the F.G4MSMAIL subprocedure.  This requires registration
         of the G4MSMAIL addon.
        Included GETURI v6.00 in the G4MS library for compatibility reasons.  When
         using this software make sure if you have GETURI in another library it is 
         not above G4MS in your library list.
        Updated the registration of services so you don't need to copy and paste 
         codes from a web page back to the green screen.  Requires internet
v3.10 - Updated G4MSMAIL to v2.00.
        Removed YAJLR4 *SRVPGM and made it Bind by Copy instead for compatibility
        Added a log file for sending email named G4MSMLGPF.  
        Added #g4ms_resendMail() function to allow user to resend a mail if it 
         ended in error and the email was created.  You must provide the unique
         ID of the email to resend (which can be found in the log file) and the
         .json file created during the email (also in the log file) attempt must 
         still exist.
        Renamed constants in the P.G4MS /COPY memeber by appending g4ms_ to the
         beginning so they won't conflict with other possible constant definitions.
        Added unique_id settable parameter.  This can be used to set the unique ID
         of the email being sent by the user.  If this is not set, the system will 
         create a unique ID.  Note, this ID MUST not exist in the G4MSMLGPF file 
         to be unique.
        Updated the #g4ms_sendMail() function to optionally return the unique ID
         of the email that was sent.
        SP162706 - Updated F.G4MSMAIL and F.G4MSDRV so the ID is case insensitive.
v3.11 - Updated registration program to use lower case for all IDs.
        SP160705 - Updated F.G4MSMAIL so if it errored out before refreshing a  
         token from a connection error the email is still able to be
         resent using MTG4MSLOG.
v4.00 - Added G4MSRMAIL addon which allows you to retrieve email messages and their
         attachments/embedded objects via a command interface or ILE subprocedures.
v4.10 - Updated to use GETURI v6.20.
        SP161201 - Updated G4MSMAIL so that when the \n sequence is used in 
         a message it is converted to a new line, like MAILTOOL
         does already.
v4.20 - Updated GETURI to v7.00 to allow non-strict SSL communications.
v4.30 - Added the following subprocedures:
         - #g4msmail_init() - Initialize G4MSMAIL
         - #g4msmail_loadDefaults() - Load defaults from a configuration file.  
            When using this option you must set the configuration file using
         - #g4msmail_dumpSettings() - This will produce a JSON file in the temp
            directory containing the values of the variables used
        New paramters for #g4msmail_setValue():
         - dump_file - Set the dump file path and name
         - configuration_file - Set the configuration file path and name.  If the value
           *DFT is used it will look for a file named 
           Where <userid> is the user id of the person running the application.  If a file
            isn't found it will use
        Updated application so that all files created use the temporary directory 
         specified instead of just /tmp. /tmp is the default temporary directory.
        If the email ends in error, along with the other debug files a configuration  
         file is created using #g4msmail_dumpSettings().
        #g4msmail_resendMail() will attempt to find the .json config file to use
         when resending emails.
        Updated so that the port used for communications is not hard coded.  Instead
         it will use the port in the G4MSSVCPF file URLs.
        SP170516 - Error retrieving messages would throw a pointer error.
         This was caused because some recipient data didn't include
          and email address all the time.  Fixed.
         Added retrieval of recipient names as well as addresses.
        SP170520 - Was only retriving 10 messages (MS pagination).  Updated 
         so it would get all messages that match criteria.
        SP170605- Updated G4MSMAIL to v3.11.
         Updated F.G4MSMAIL so when you are sending emails if an 
          attachment is over a limit it will throw an error instead
          of ignoring the attachment.
         Added data area G4MSMAXASZ that holds the maximum attachment
          size that can be used (in bytes).  Default to 30mb.  MS
          servers seem to have a problem with anything bigger
          so if this is increased do so at your own risk.
         Added GETURI v7.10.
         Fixed issue with base64 encoding when file already existed.
v4.50  - Updated GETURI to latest version.
         Renamed YAJL so it wouldn't conflict with other versions of YAJL
          that may be already installed.
v4.60  - Updated refresh token process to use new refresh token each time.
         Updated callbacks to all HTTPS vs HTTP.
         Updated registration link to HTTPS.
v4.70  - Update GETURI to v8.30.
v4.80  - Updated F.G4MSMAIL so that when processing emails from a mailbox
          if the encoded size of the part was bigger than the max size
          to throw an error.  Otherwise a space offset error could occur.
         SP180828 - Fixed pointer error when certain values weren't passed in the
          JSON data from the API
         SP190328 - Fixed issue when running system CCSID of 65535 and base64 encoding
            error for attachments.
v5.00  - Deprecated F.G4MSDRV functions.  Replaced with F.G4MSOD functions which use the
          newer Microsoft Graph functionality.  The names of the subprocedures have also
          changed and may require updating of applications that used the old F.G4MSDRV
         Updated GETURI to v10.02
         Added licensing required for base F.G4MS product.  
         Made F.G4MS service program available for use by 3rd parties.
         Require V7R2 or higher OS version.
         SP191121 - Added error checking to file upload so if there was an error
           while reading the file it would report the error instead of
           a generic error.
v6.00  - Updated F.G4MSMAIL service program to use the new Microsoft Graph APIs for email
          sending and retrieval.  Because of this update, users will need to re-register
          with their accounts and the service(s) they are using using the G4MSREGSVC
         Removed ability to use proxy with the override parameters for GETURI.
         Removed :443 from URLs in G4MSSVCPF file.
         For fields written to the G4MSMHPF file the labels now start with a lowercase
          letter instead of an uppercase letter to match the labels used by the new
          MS Graph API. Example: ToRecipient is now toRecipient.