MMAIL CHANGE LOG 2023-11-30 - EML... commands parameter SUBJECT is now 120 char.s Fixed program CHKCCSID that did not compile in OS V6R1, 2023-10-24 - Fixed program COMPILE. 2023-10-19 - Fixed program SENDMIME. 2023-09-22 - Service program SENDMAIL now available, for existing user programs bound to it. 2023-09-20 - Utility AMAILER has been REMOVED. A new service program, USRVPGM, now includes the functions previously available from service programs SENDMAIL and SOCKETMAIL. 2023-07-08 - New command RMVWRKF removes from IFS directory /MMAIL/WORK stream files left there because of failures. 2023-05-01 - Added CHKOUT / CHKIN to EML... commands. 2023-03-14 - File MMAIL/CCSID was not in previous release dated 2023-03-08. 2023-03-08 - Fixed procedure VldEmail() in module XXXVLDEMAI of srvpgm SENDMAIL. - Fixed procedure ChkIfs4() in module XXXCHKIFS of srvpgm SENDMAIL. - Checks have been added to make sure that the utility runs with a supported job CCSID. 2022-02-26 - Fix. In a user case pgm WRKADDR could not find logical file MMAILDATA/DSTL2. 2022-02-23 - Added a FAQ about bypassing POP3 access problems to a remote account mailbox, see FAQ no. 31 at page http://mmail.easy400.net/mmailh/faq.htm . 2022-10-24 - Fixed an error in CLLE pgm MMAIL/COMPILE (loss of file SAMPLECL). 2022-08-15 - Library MMAILMAINT now contains code to - save and restore Scott Klement's library HTTP - create data area MMAIL/DEVELOPER, if missing. 2022-08-05 - Updated a number of CGI WEB programs in order to care for job CCSID 65535. Fixed pgm MAILARCHIV to generate AMAILER user named DSPOUTLOG. 2022-07-22 - It was reported that pgm EMLSPL3 was loosing some destination addresses, unless *INLR was set on. Fixed. 2022-04-15 - Fixed procedure ChkLibObj(), it was not working for object type *LIB. 2022-04-11 - A large number of error messages from command CHKOBJ no longer show up in joblogs, thus reducing their sizes. This was done replacing cmd CHKOBJ with procedure ChkLibObj(). 2022-03-22 - In RPG module YYYASCIEBC, procedure ToASCII() was fixed a small bug. - In RPG module XXXSPLPDF, procedure SplPdf() was added code to support the CPYSPLFPDF conversion tool. 2022-03-13 - Fixed procedure MimeImbAtt() regarding some IASP support. Better diagnostic messages provided for CGI pgm WRKSPLF. Distribution lists (MMAIL/WRKGRP) now supported by CGI pgm WRKSPLF. 2022-01-08 - INFOPRINT issue solved by updating module XXXINFOPCL of srvpgm SENDMAIL. 2022-01-06 - Fixed pgm EMLSPL2. It was able to attach only 2 spooled files (PDF) instead of 30. 2021-12-07 - In command EMLMSG, parameter TXTF now supports *LIBL and *CURLIB special values as library names. 2021-12-02 - SENDMAIL service program procedures MimeImbSpl() and MimeImbSrc() have been updated to better support stream file paths when IASP used. 2021-12-01 - IFS command CPY is no longer used: it may require authorities not available to some user profiles using MMAIL. It was therefore replaced by a MMAIl procedure named CPYIFSSTMF(). 2021-11-30 - *PCASCII CCSID value is no longer hardcoded as 1252. Now it is customized at MMAIL install time and is dynamically retrieved by procedure GetPcASCII(). 819 ASCII CCSID value is no longer hardcoded. Now it is dynamically replaced by the value returned from procedure GetPcASCII(). 2021-11-28 - Fixed RPG pgm MMAIL/CVTSPLFPDF. It used to have troubles with missing input parameters. 2021-11-27 - In 79 MMAIL modules, calls to procedure ChkIfs4() were replaced by calls to procedure ChkIfsObj4(). This was done to have better diagnostics for "IFS object not found" vs "not authorized to IFS object". - Module XXXCVTSTMF of servpgm SENDMAIL was fixed to support the copy of a stream file even when Object management authority to execute "cpy obj" is not allowed. 2021-11-08 - Fixed the installation process of library MMAIL via command MMAILMAINT/MMAILMAINT 2021-09-09 - Now the process to install the first MMAIL and to update an already installed MMAIL is the same. In case of a MMAIL update, there is no longer the need to delete or rename the already installed MMAIL library. MMAIL sources and objects are now updated without any disruption to ongoning production jobs. This is done by installing a library named MMAILMAINT (MMAIL Maintenance) which takes care to execute the MMAIL install or update, according to what is found on the system. =========================================================================================================== === MMAIL RELEASE AND INSTALLATION PROCESS ARE NOW PERFORMED VIA UTILITY "MMAILMAINT" =========================================================================================================== 2021-08-20 - In module YYYPROC1 fixed procedure AMMDELETE(): it had problems in deleting expired attachment stream files. 2021-08-10 - In MMAIL/QRPGLESRC mbr XXXMIME fixed procedure MimeImbAtt() for a correct support of attachments to be displayed in the message body by specifying attachment CID (Content-ID). 2021-07-21 - The following environment variables are made available when a mail message is sent from an EML... command: ENVIROMENT VARIABLE SAMPLE VALUE LAST_MAIL_FILE '/MMAIL/temp/Q59318.txt' LAST_MAIL_SENDER 'jbsmith@gbtoys.net' LAST_MAIL_RECIPIENTS 'CMWeber@gmail.com;admin@gbtoys.net;' LAST_MAIL_SUBJECT 'Your last order to GBTOYS' LAST_MAIL_TIME 'Wed, 21 Jul 2021 14:32:40 +0000' See topic " Retrieving info about the last e-mail message sent" at page http://mmail.easy400.net/mmailh/samplecode.htm#E03 . 2021-07-17 - Fixed modules YYYSOCKET and YYSOCKETS in detecting the end of an e-mail message (suggestion from Alessandro Baggio, dated June 30, 2021). 2021-06-11 - In module XXXQPRENC, procedure CvtQpr(), fixed out-of-allocated-memory case. 2021-05-21 - In some non-English countries, the outgoing e-mail messages logged in file MMAILDATA/OUTMAILLOG used to be recorded with char § instead of char @ in the sender e-mail address. A fix had to be applied to module XXXMAILSND. 2021-05-17 - Fixed procedure MimeCpyB64() in module XXXBASEW64E. Reason: minor problem with last truncated chunk. 2021-04-21 - Fixed an AMailer problem (module YYYDETACH) in detaching BASE64 and QUOTED-PRINTABLE attachments in receiving e-mail messages originated from a Lotus-Notes mailer. 2021-03-24 - Updated command MMAIL/ZIP. If OS release higher than V7R3, and the CCSID of the resulting zip file is 1208 (UTF-8), it is changed to 819. - Fixed a problem in MAILARCHIV. If a sent-out e-mail message was featuring an attachment containing a ZIP file of a stream file in directory /tmp, the original stream file in directory /tmp used to be deleted. That is no longer true. 2021-03-18 - Provided support for CCSID 5348 (often used by IBM instead of CCSID 1252) 2021-03-09 - In command STREMLSPLF the default value of parameter DSTTYPE (Distribution type) was changed from *BC to *TO . 2021-03-07 - A potential problem with AMailer POP3 accounts was solved. A POP3 account could fail to be correctly retrieved when the job CCSID was different from the one at the time when the account was created. That was causing problems when logging to the POP3 account. 2021-02-10 - AMailer procedures retrieving e-mail messages from POP3 are now supporting the case where an e-mail message fails to be retrieved. See page http://mmail.easy400.net/mmail/amailer/tutorial/AppendixC.htm#2 . 2021-01-21 - Small change to pgm CLICKATEL2: it now uses the Test Clickatell Integration API wenever possible, thus saving money during tests. 2020-12-21 - A new command -RMVINFOPRT- removes the Infoprint Server environment for spool-to-PDF transform created by command MMAIL/INFOPRINT. 2020-11-06 - Fixed some object ownerships in IFS direcory /MMAIL/ZIP . 2020-10-23 - In command STREMLSPL2, parameter BODY defines a default IFS stream file to be used as message body for all e-mailed spooled files. A new feature, parameter BODYEP, now allows to define an exit to a local user program returning a different message body stream file name depending on the spooled file being processed. Both the default message body stream file and the user-program returned one can now either be a plain text file or a HTML one. 2020-10-20 - Fixed error in pgm EMLSPLF and EMLSPLF2: when both parameters EXITPGM and SENDEREP specified, parameter SENDEREP was not processed. 2020-10-15 - Command STREMLSPLF and STREMLSPL2 (Automated e-mail of spooled files) now feature a way to dynamically change the e-mail sender depending on the spooled file being sent. This can be done through a simple local program. See parameter SENDEREP at page http://mmail.easy400.net/mmailh/othutils.htm#07 . 2020-10-11 - Procedure MimeImbSpl() - in module XXXMIME - updated to support MNGSPLF option A in IASP environment (Case ID 0015811). - Added to MMAIL User Guide a page about e-mail addresses validation. 2020-10-07 - Module XXXVLDEMAI of MMAIL/SENDMAIL service program updated to support embedded blanks in e-mail addresses. 2020-10-03 - MMAIL/SENDMAIL service program was added procedure LibObjIfsNam(). This procedure adds a /iasp qualifier at the beginning of an IFS file name representing a library file object, in such a way that /qsys.lib... would now be /iasp/qsys.lib... if the file object resides on an IASP drive. 2020-08-01 - The Change Log can now be displayed as an HTML page from the online manual. 2020-07-20 - A new command, EMBEDSPLF, allows to embed a SCS spooled file into a message body stream file. This message body stream file can then be e-mailed using command EMLHTML, EMLNOTE or POSTANOTE. 2020-06-18 - In command SENDMIME added element 'Cvt to ASCII' to parameter 'ATTACHMENT' in order to support the attachment of non-ASCII stream files ('*NO' should be specified for such element). 2020-06-10 - Created command MMAIL/CLICATCOMP to create the MMAIL programs used to support Clickatell SMS sending. 2020-04-15 - Fixed a bug in pgm COMPILE. 2020-04-10 - To provide an alternate approach to parameter SPLFSND (based on predefined WRKGRP distribution list), a new optional parameter, EXITPGM, has been added to commands STREMLSPLF and STREMLSPL2. Through this parameter an user external program receives spool file attributes and returns a distribution list. 2020-03-25 - In command CLICKAT2, TO (mobile number) now supports also non-number characters, example: +1-541-754-3010 . 2020-03-20 - Parameter MAXMSG added to command PRCUSRMAIL. This parameter may reduce number of exceptions due to lack of memory left. 2020-02-14 - Updated MMAIL-Clickatell interface programs to make sure they send SMS even when SSL not yet enabled. 2020-02-03 - Updated program COMPILE to skip generating Clickatel SMS support programs if library LIBHTTP not available. 2020-01-10 - All EML* programs now supporting 120 char subject. 2020-01-02 - Fixed procedure DltIfsObj() of service program YYYSOCKET. That bug could cause AMAILER incoming messages not been received. 2019-10-21 - Two small fixes -- in module XXMAILSND, procedure SENDMAIL, MMAIL forced to library list before submitting job MAILARCHIV. -- In module YYYPROC1, procedure AMMDELETE, made sure that member of MMAILDATA files AMMAIL and AMATTACHS are found. 2019-09-30 - Some more updates to programs WRKSMS, CLICKATELL and CLICKAT2. 2019-09-27 - Updated program WRKSMS. 2019-09-26 - Added new SMS send command CLICKAT2. CLICKAT2 specifies as destination a mobile phone number, while command CLICKATELL specifies as destination a person ID. 2019-09-09 - Tools have been made available to measure the delivery performance of Clickatell SMS messages. See page http://mmail.easy400.net/mmail/html/clickatell.htm#8 . 2019-09-01 - Fixed the case when a quoted-printable message body failed to include an automated signature (fixed procedure MimeImbHtml() in module XXXMIME of srvpgm SENDMAIL). 2019-08-29 - Commands EMLNOTE and POSTANOTE were added a new parameter (AUTOSGN, Include automated signature). 2019-08-26 - Program WRKSMS now also listing the existing "integrations". 2019-08-24 - Subject length raised from 70 to 120 char.s in most EML... commands. - Fixed program WRKSMS. 2019-08-23 - Graphic signature support. Command CRTSGN allows now as a signature EITHER an image OR an HTML script. 2019-08-20 - Two more commands (CRTSGN and SETSGN) are now supporting automated addition of graphic signatures at the bottom of message bodies sent from EML... commands. See page https://www.easy400.net/mmailh/wrksgn.htm . 2019-08-18 - New CGI WEB program WRKSMS allows to: -- send SMS -- display the SMS log -- maintain the SMS Phone Book. 2019-08-15 - New feature: command to send SMS. See page http://mmail.easy400.net/html/clickatell.htm . 2019-07-31 - Fixed program EMLMSGVCKR (if no destination e-mail addresses, an error message will stop the process). 2019-07-22 - The following commands and programs: EMLSMTPEMM, EMLNOTE, POSTANOTE are now created only if service program QTCP/QTMSCRTSNM (API QtmsCreateSendEmail) is available. 2019-05-29 - New command RTVSTMF retrieves all IFS files in a given directory that match a given name pattern. 2019-05-18 - Commands EMLSTMF, EMLHTML and EMLTXTSTMF have been added a new parameter, named ALLASCII ("All attachments will be ASCII"). This parameter specifies whether non-ASCII stream files to be attached should temporarily be converted to ASCII before been attached. 2019-04-13 - Fixed CLLE pgm INFOPRINT. 2019-03-30 - Added some joblog completion messages to program EMLNOTE. 2019-03-27 - Fixed program INFOPRINT. 2019-03-12 - Fixed command EMLHTML. It was failing when using distribution lists. 2019-02-18 - Removed a potential problem on e-mail address validation in module XXXMAILSND. 2019-02-01 - Fixed program SETROOT. 2019-01-15 - Fixed procedure MimeDistr(). It was replacing the receiver name with his initial e-mail address, even when the receiver name was not missing. 2018-12-19 - Fixed the program (CVTTOB64) converting a stream file to a BASE64 stream file. 2018-12-10 - Fixed command EMLHTML, which was no longer working since September 4, 2018. 2018-11-17 - Enhanced the MMAIL POP Trace: -- New commands: POPTRC_STR Start POP trace POPTRC_END End POP trace POPTRC_DSP Display POP trace POPTRC_CLR Clear POP trace -- Updated service program SOCKETMAIL (modules YYYSOCKET and YYYSOCKETS, procedures Pop3Login, SSLPOP3Login, Pop3RtvMsg, SSLPop3rtvmsg) to support this enhanced POP Trace. - Program MAILUSERS: updated the code used to remove an existing user. 2018-11-13 - Updated pgm PRCUSRMAIL for the case where it processes incoming mail for a local user without a pre-defined user profile. 2018-11-12 - Programs MAILARCHIV and RCVMAIL now created with USRPRF(*OWNER) and owned by a CLASS(*SECOFR) user profile. 2018-10-21 - New command POSTANOTE takes advantage from V7R1 API QtmsCreateSendEmail to provide a never ending mail-send service. See page http://mmail.easy400.net/mmailh/othutils.htm#postanote . 2018-10-16 - New command EMLNOTE takes advantage from V7R1 API QtmsCreateSendEmail to provide a fast create & send of a MIME note featuring a TEXT / HTML / XML body and up to 50 stream file attachments. See page http://mmail.easy400.net/mmailh/othutils.htm#emlnote . 2018-10-07 - Some updates to program EMLSMTPEMM. 2018-10-06 - New command EMLSMTPEMM - based on system command SNDSMTPEMM - quickly sends an impropmptu e-mail message with attachments. 2018-10-03 - Pgm EMLHTML2 now duplicated from pgm EMLHTML for transparency with previous users. 2018-09-24 - Pgm EMLMSGVCKR updated to support the case: EMLMSG TXTF(*NONE) STMFTXT(*NONE) . - In all EML... commands, receivers blank names are now replaced by the fitst part of their e-mail addresses (previously they were replaced by their full e-mail addresses) - Two new commands: -- CVTTOB64 - Encodes a binary stream file (example: a PDF) to a BASE64 stream file -- CVTFRMB64- Decodes a BASE64 stream file to its original binary stream file (example: a PDF) 2018-09-15 - In command EMLMSG fixed a bug: when the message text was to be taken from a source file member, it was disreguarded. 2018-09-05 - Fixed the case when command EMLMSG issued from a batch job and no message text specified: -- in the previous version an escape message used to issued -- in this new version a default text is provided for the message body. - Fixed the case when in command EMLMSG some addressee e-mail addresses are blank: -- If MMAIL/VLDEMLADDR VALIDATE(*NO), the blank e-mail addresses are discarded -- If MMAIL/VLDEMLADDR VALIDATE(*YES), an rescape error message is issued. - In program COMPILE fixed a number of compile commands that were not working. 2018-09-04 - All MMAIL/EML... commands are now supporting distribution lists through parameter TODSTL (To Distribution Lists). A special WEB utility, Work With Distribution Lists (WRKDSTL), allows to create and to maintain distribution lists, see http://mmail.easy400.net/html/othutils.htm#wrkdstl . - Command EMLSTMF has been enhanced to include command EMLHTML2. However a command named EMLHTML2 is still available for user transparency, though it now executes EMLSTMF. 2018-08-21 - Commands EMLMSG, EMLPTUMSG and EMLQPMSG: a new parameter (TODSTL) allows to distribute the message to up 50 distribution lists, on top of the 50 individual destination e-mail addresses already supported. The maximum number of destinations has beed raised to one thousand. This feature is planned to be added to all the other EML... commands. 2018-08-15 - Fixed support of command VLDEMLADDR (Validate e-mail addresses?) in module XXXMAILSND of srvpgm MAILSEND. - Fixed pgm EMLSTMVCKR (inappropriate diagnostics) 2018-08-11 - Because of the implementation of mail filters, pgm PRCUSRMAIL no longer restricts its process to messages in pdseudo directory "MailReceived". It now checks messages of all pseudo directories to find the ones not yet processed and processes them. 2018-08-06 - Any AMailer user can now define filters for the incoming mail. That option has been added to the "Tools" menu. - Fixed the case where program CHGJBCCSID could cause a user space be saved to QRPLOBJ at every e-mail message sent. - Fixed pgm MAILARCHIV. It could leave a /tmp/Qnnn.txt stream file. - In many QRPGLESRC members, command OVRDBF replaced by F-spec extfile and extmbr keywords. 2018-05-09 - Fixed pgm EMLSPL and EMLSPLVCKR for the case where in command EMLSPL parameter SICON is not specified. 2018-04-30 - New procedure RtvLibl() added to srvpgm SENDMAIL. - Updated SENDMAIL procedure AddMyLible(). 2018-04-25 - New SENDMAIL procedure AddMyLible() adds MMAIL to the library list whenever needed. Now added to all MMAIL commands. - Fixed pgm REROUTE (single day interval time was not working properly). 2018-04-09 - Fixed validity check program EMLMSGVCKR. It was not transparent (because of parm SICON) to previous MMAIL releases. 2018-04-01 - New AMailer features made available: 1- Auto-Receive Timer for the WebMail page "Mail Received" http://mmail.easy400.net/mmail/amailer/tutorial/asuser.htm 2- Rerouting option for incoming mail http://mmail.easy400.net/mmail/amailer/tutorial/AppendixB.htm#3AI 3- POSTMAN non-ending job to receive mail for all users http://mmail.easy400.net/mmail/amailer/tutorial/AppendixB.htm#3C (command SETMGETTER discontinued) 2018-03-21 - Fixed command SETMGETTER and related programs. - Fixed detection of message properties Priority, Importance, Sensitivity for incoming messages. 2018-03-16 - Fixed the following AMailer bug: the file name of an attachment (encoded Quoted Printable + UTF-8) was missing the last 2 chars when decoded. Fixed the following procedures: - DecMxStr() in module YYYCVTTIT - qpr-decode2() in module YYYQPRDEC - utf8-decodes() in module YYYUTF8DEC 2017-11-27 - Improved the support for subject generation in program EMLSPLF. - Fixed a potential loop in procedure FIXBODY64() of module YYYFIXBD64. 2017-11-18 - New look from AMailer pgm AMREPLY. 2017-11-16 - New look from AMailer pgms AMXHISTORY, AMDSPMSG, AMNEWMSG, AMWRKBOOK. 2017-11-09 - Fixed program CVTHTMPTXT, a vital part of the PRCUSRMAIL process. 2017-11-06 - Update procedure CvtHtmlTxt() in module XXXMIME. 2017-11-03 - Temporarily fixed an addressing error in procedure RtvMsgProp(), module YYYPROPERT. 2017-11-01 - Temporarily fixed an addressing error in procedure AMMDetach(), module YYYDETACH. 2017-10-27 - In procedure MimeSender() (module XXXMIME) fixed the case when character set is UTF-8 and the sender name is checked for conversion to UTF-8. - Fixed the following error in command STREMLSPLF: - when a distribution list name (group name) is lower/mixed case, in the submitted batch job the distribution list for the e-mail message comes out as empty and the job ends with end severity 20. 2017-10-20 - Fixed some code in modules YYYPROPERT and YYYCVTTIT. - Fixed http instance creation instructions in /mmail/conf/httpd.conf 2017-10-11 - Fixed a problem in procedure SSLdisconnect, RPG source member YYYSOCKETS. 2017-10-08 - Some changes to DSPF WRKGRP. 2017-10-01 - In pgm COMPILE, fixed the creation of pgm DSPLOGMSG. 2017-07-06 - Fixed local procedure GETDST() in module XXXDATE822 of service program MMAIL/SENDMAIL. 2017-06-29 - Fixed comand EMLHTML2 validity check program. 2017-06-25 - Command SETMSGLVL now supporting LVL(0) to suppress MMAIL joblog messages. 2017-06-20 - New command EMLQPMSG allows to send an impromptu message, Quoted-Printable encoded, with character set UTF-8. 2017-05-29 - Some fixes to pgm CVTTOPDF. - Fixed the case when CVTSPLSTMF fails to ADDRPYLE because all RPYLE's are already taken. 2017-06-22 - In MNGSPLFA screen, spool files are now shown in ascending chronological order. 2017-05-19 - One more fix to IASP support in procedures MimeImbSpl() and MimeImbSrc(). 2017-05-18 - Program MNGSPLF updates for options A,B,C and D: -- Successful operation confirmed through a foot message -- Unsuccessful operation issues an escape message. 2017-05-14 - To assign message file number, file TEMPID of library MMAILDATA is now used, instead of the one in library MMAIL. This allows not to reset to zero the number of the last message file when a new MMAIL release is installed. This was mainly done not to mess up the message log data. - Program MAILARCHIV, before archiving a message file removes any data already stored for the same message. 2017-05-03 - Fixed a severe error in XXXMIME local procedure "UTF8Bencstring" (encode a character string to UTF-8, then encode it to BASE64), used to encode addressee names and message subject. 2017-05-02 - A default subject icon can now be defined with command DFTSICON. 2017-04-30 - Subject icons now supported (display only) also across AMailer. 2017-04-18 - You can now add an icon to the e-mail message subjects. This feature is supported -- through parameter SICON in all the EML... commands -- through parameter SICONOPT in commands STREMLSPLF and STREMLSPL2. The available icons are published at page http://www.easy400.net/mmailp/sicon.pgm . (Suggestion from Rob van Bezouwen, Netherlands) 2017-04-12 - Fixed incorrect use of IASP name in procedures MimeImbSpl() and MimeImbSrc() (Suggestion from Steve Houts, US) 2017-04-10 - Recoded some parts of module XXXMAILSND, but no functional changes. - Pgm MAILARCHIV: forced MMAIL in user library list. 2017-04-06 - Fixed validation program EMLSAVVCKR of command EMLSAVF. - INFOPRINT support: -- Command MMAILWTR may be used to keep MMAIL writer always active. -- Changed CLLE pgm INFOPRINT and RPGLE module XXXINFOPRT to prevent writer MMAIL from ending. -- Updated RPGLE module XXXINFOPRT to: --- force CCSID 819 to generated PDF's --- give to *PUBLIC full authorities over generated PDF's when running in a WEB job. 2017-03-09 - More process tracing messages from procedure SendMail(). 2017-03-08 - Some changes to program MAILARCHIV. Messages stream file are no longer saved in the directory specified by command SETSAVOPT. They are instead saved into the /amailer subdirectory associated to AMAILER account DSPOUTLOG. Saved messages can be displayed (as before) through WEB CGI program /mmailp/dspoutlog.pgm . 2017-03-04- Re-written command and program REBIND. 2017-03-02 - Fixed command SETSAVOPT. 2017-02-26 - New command SETMSGLVL provides more information for problem determination in the area of sending e-mail messages. - Spool-To-PDF conversion program "IPDF" - withdrawn from ORATI-SYSTEM - is no longer supported within MMAIL. 2017-02-24 - Control file EMLSPLFSBJ (used by pgm's EMLSPLF and EMLSLF2) was added one more field (spooled file number). 2017-02-23 - Procedures MimeImbTxtF(), MimeImbHtml(), Cvt_Stmf(), MimeCpyB64(), CvtQPR() will now issue an escape message if anything goes wrong. 2017-02-21 - Character set UTF-8 now supported also in provcedure MimeImbSrc(). - More diagnostic messages added to several procedures of module XXXMIME and to procedure MimeCpyB64(). 2017-02-15 - More diagnostic messages added to procedure MimeImbSrc(). 2017-02-14 - In procedure MimeImbSpl() fixed an error that was corrupting parameter ImbAttCid when passed to procedure MimeImbAtt(). 2017-02-03 - Fixed error in program EMLSRCVCKR, the validity check program of command EMLSRCM. - Made some changes to procedure MimeImbSrc() to receive a log message if CPYTOSTMF fails. 2017-01-21 - New feature: a program that displays the entries in the log of mail sent, and a feature to display the message stream files sent out. See page http://mmail.easy400.net/mmailh/dsplog_example.htm . 2017-01-18 - Fixed a problem in procedure MimeImbSpl() when multiple spool files with the same name. 2017-01-14 - New feature for archiving outbound e-mail messages, see page http://mmail.easy400.net/mmailh/othutils.htm#10c . - Provided a default program for logging the outbound e-mail messages, see page http://mmail.easy400.net/mmailh/othutils.htm#10a . 2017-01-11 - It is now possible to maintain a log of the outgoing e-mail messages through an exit point just made available. A user program can receive information about any outgoing mail message through a given exit point and log this information to a user-defined log file. See page exit point SENDMAIL-002 at page http://mmail.easy400.net/mmailh/srvpgm.htm#PART4 . 2016-12-07 - Commands STREMLSPLF and STREMLSPL2 have been added a new parameter named SPLFTIME. When SPLFTIME(*ANY), spooled files in the output queue are e-mailed even if existing "before" the command is entered. - Procedures MimImbSpl() and MimeSplPdf() are now checking that the spool file is not in *OPEN status. 2016-11-01 - In module XXXMIME, procedure MimeSplPdf(), subprocedure LockPdfName() no longer used. Reason: performance improvement in handling a large number of spooled file conversions to PDF. 2016-09-28 - Added a new procedure, RtvWtrSts (Retrieve Writer Status) for use of module XXXINFOPRT of srvpgm SENDMAIL. This again should help in appropriate starting/ending the writer needed for spool-to-pdf conversion with INFOPRINT. - Corrected EMLSPLF and EMLSPLF2 sources, would have failed to be compiled if release not V7R2. 2016-09-26 - Fixed a potential problem with undue ending writer MMAIL when INFOPRINT used to perform spool to PDF conversion. 2016-09-24 - Programs EMLSPLF and EMLSPLF2 partially re-written to ease debug. 2016-09-23 - Fixed the case where command PRCUSRMAIL was not deleting attachments of expired e-mail messages. 2016-09-13 - A generic spool file name is now supported in the rcdfmt of file MMAILDATA/EMLSPLFSBJ . This was done to be consistent with generic spool file name support in parameter SPLFSND of commands STREMLSPLF and STREMLSPL2, when parameter SBJTYPE(C) is specified. 2016-08-21 - Some changes to pgm INFOPRINT to make sure that all IFS directories created from it can be accessed by *PUBLIC. 2016-05-31 - Included some PDF's on IBMi electronic mail capabilities no longer available in Internet. 2016-05-05 - In module XXXMIME, updated subprocedure LocPdfName() - called from procedure MimeSplPdf() - when attempting to write a record with duplicated record key to file MMAILDATA/PDFBUSY. 2016-04-04 - RPG compile error in some national languages (e.g. French): -- P#IPAddress replaced with P_IPAddress 2016-04-01 - Fixed an error in CLLE pgm INSTALL, causing a failure in restoring IFS directory /mmail . 2016-03-16 - The sample program sending an e-mail message from a CGI WEB page ( http://mmail.easy400.net/mmailh/samplecode.htm ) is now able to upload an attachment from the PC. 2016-03-13 - Installers stuck with system value QCCSID 65535 may now run command MMAIL/SET65535 at the start of a job to force job CCSID be reset to 65535 after executing a MMAIL/EML... command. See page http://mmail.easy400.net/mmailp/intro.pgm#topic1a . 2016-03-12 - Added a sample program about sending an e-mail message from a CGI WEB page ( http://mmail.easy400.net/mmailh/samplecode.htm ) - Fixed procedure ZipFile() (module XXXMIME) so that if the ZIP of an attachment fails, the unzipped file is attached instead. 2016-03-11 - CLLE program VLDEMLADDR was not compiled at install time. 2016-03-10 - Updated procedure IFSOpen (module XXXMIME) to retry up to 9 more times a failed open. 2016-03-09 - Fixed a bug in procedure TempCrtF (module XXXMIME). - In procedure MimeImbTxtF (module XXXMIME) removed some nested IFS open's on the same MIME file. 2016-03-08 - This is a major release. Command CRTMMLIB is now replaced by command DUPMMAIL. Command DUPMMAIL allows for MULTIPLE MMAIL LIBRARIES on the same box (partition). In this way you may run simultaneously different MMAIL versions (e.g. a cool version for production, a new version for test). You should specify the selected MMAIL library in the job library list. Read about multiple MMAIL libraries at page http://mmail.easy400.net/mmailh/multlibs.htm . 2016-03-14 - Slightly changed program EMLSTMF2 to support a physical file (instead of a source file) in parameter MSGM. 2016-02-21 - A number of procedures in srvpgm SENDMAIL were changed by replacing calls to CL modules with calls to system API's. This should be transparent to installers. 2016-02-18 - Fixed procedure IFSOpen() in module XXXMIME. 2016-02-14 - New command F_TO_STMF (Copy database file to stream file). 2016-02-08 - Added new subprocedure to service program MMAIL/SENDMAIL: CloAllIFSopnObj() - Close all the IFS objects still open in the current job. This procedure is now used in all EML... commands to prevent reaching the max number (200) of IFS open objects. 2016-02-04 - There is an unsolved problem (Gerald Magnuson): -- When multiple jobs are sending out simultaneously a high number of e-mail messages, some 10% of messages receive an escape message saying that a stream file could not be opened. We have update such error messages, so that at list now we would know which subprocedures of service program MMAIL/SENDMAIL send them out. This might help in understanding more. - Fixed program ZIP. 2016-01-20 - New command FIXJOBCSID allows to run MMAIL from jobs with CCSID 65535. 2016-01-10 - Fixed messages about parameter SAVEDIR in module XXXMAILSND. - Added validity check for parameter SAVEDIR in all validity check programs of EML... commands. 2015-12-28 - Fixed an important bug in MMAIL installation procedure (programs not created because the same module was available in two different service programs) December 16, 2015 - XXXMIME, procedure MimeSubject() - Now the subject text is always UTF-8 encoded, thus lowering the msg SPAM level. December 3, 2015 - Fixed an occasional memory allocation error in module XXXQPRENC of service progra SENDMAIL. October 28, 2015- V5R3 - In a case, the default message body stream file, while being created by procedure MimeImbTxtF(), was deleted by a concurrent job performing the same function. That was fixed by making that stream file name unique. 2015-10-22 - New AMailer procedures (in module YYYDNSVSIP) to support POP3 Server DNS Name (instead of IP address): -- isIpAddress(dnsName) checks if the DNS name provided is instead an IP address -- cvtDnsToIP(dnsName) returns an IP address from a given DNS name -- updPop3IP(accontCode) updates field ACCSVR (IP address) from the value of field ACCHOST(dnsName) in the MMAILDATA/POP3ACC record for a given account code ACCCDE. This is done to refresh the address of a given POP3 server name, should it have been changed by its ISP. The above procedures are now used to support POP3 server DNS names instead of their IP addresses (still supported). 2015-10-07 - New procedure MimeImbBuffer() added to service program SENDMAIL. This procedure allows to embed - in the body of an e-mail message - the script generated in the output buffer of a CGIDEV2-based program. To know how this is done, browse member SNDDSTL in source file MMAIL/QRPGLESRC. The relevant code is in its local procedure SendEmail() . 2015-10-05 - Updated modules XXXMAILSND and XXXEMSTAMP to avoid lock-wait on data area MMAILDATA/LSTEMSTAMP. 2015-09-20 - EML... programs now receiving "e-mail sent" messages at top of program stack. 2015-09-18 - Added command SPLFTOPCD (Convert a spooled file to a PC document stream file). 2015-07-13 - Released an uptodate version of MMAILDeveloperGuide.pdf . 2015-07-11 - In all e-mail commands (e.g. EMLMSG), *BCC now replaced by *BC . 2015-06-30 - AMailer. Added some little code to module YYYDETACH of srvpgm SOCKETMAIL, in order to force creation of IFS directory /amailer/.../Attachments if still missing. 2015-06-26 - Module XXXMAILSND of service program MMAIL/SENDMAIL was not creating data area MMAILDATA/SPLSTMFDTA - Procedure MimeSplPdf() in module XXXMIME of service program MMAIL/SENDMAIL was failing to convert a spool file to PDF using utility CVTSPLSTMF, if MMAIL root directory not / . 2015-06-02 - Fixed potential user error in using command SETROOT. 2015-05-23 - Fixed subprocedure MimeVarTxt(). It was not closing a stream file, thus - in a long run - causing the job to reach the maximum number of open objects and not been able to perform any further open of a stream file. 2015-04-15 - AMailer. Fixed pgm AMFUPLOAD in the case where the browser is appending extra information after the file extension. - AMailer. Fixed module YYYDETAXG. Attachment filenames containing invalid characters are replaced by default names. - AMailer. Fixed module AMDEBODY. Attachments generated from CID tags no longer listed as attachments. 2015-04-10 - Command EMLMSG has been added a new parameter (TXTSTMF) which allows to use a stream file (instead of a source member) to make up the message body. 2015-04-05 - Added command SETAFPTOOL. It allows to pre-define AFPTOOL/AFPTOOL command parameters for a given printer file. - Added command SETSPLTOOL. It allows to pre-define SPLTOOL/SPL2STMF command parameters for a given printer file. 2015-04-02 - SPLTOOL, *SCS spool-to-Pdf conversion utility by Bradley V. Stone, is now also supported in MMAIL. 2015-03-31 - Small fix to local procedure RunIPDF() in RPG module XXXMIME. Increased of 1 the length of the QTEMP phy file receiving the output of CPYSPLF command, to account for the FCFC control character. 2015-03-27 - OS/400 release prerequisite for IPDF lowered from V6R1 to V5R4. 2015-03-11 - Commands ZIP and UNZIP now supporting also back slashes ( "\" ). 2015-02-22 - On request, special instructions may be provided to install IFS directory /mmail not in the IFS root directory. 2015-02-10 - Command CPYSPLFPDF now working also on V7R1. See page http://mmail.easy400.net/mmailh/othutils.htm#cpysplfpdf . 2015-02-05 - Regarding PRCUSRMAIL. Fixed the way to request removal of a message to the POP3 client (modules YYYSOCKET and YYYSOCKETS). - AMailer and PRCUSRMAIL successfully tested vs MS Mail Exchange POP3. 2015-02-03 - A new command, RGZFILES, reorganizes all physical file members in library MMAILDATA. This command is run at the end of command PRCUSRMAIL. 2015-01-26 - Though the V5R2 version of MMAIL is frozen, it was updated because of a number of V5R2 italian users who - all of a sudden - were receiving reject messages from mail boxes in domains "libero.it" and "virgilio.it". 2015-01-24 - Added diagnostic messages to subprocedures GetMsgProp(), RtvMsgProp() and WrtMsgProp() of service program SOCKETMAIL, module YYYPROPERT. Those procedures are responsible for retrieving the properties of an incoming e-mail message processed through AMailer or PRCUSRMAIL. 2014-12-16 - AMailer outgoing messages now supporting attachments larger than 16 Megabytes. 2014-12-07 - AMailer capabilities extented to receive and to process e-mail messages larger than 16 Megabytes. The process includes: -detaching body and attachments -decoding body and attachments (when encoded in UTF8, BASE64, Quoted-Printable) -unzipping zipped attachments. 2014-11-16 - A new command, MRGJOBSPLF, allows to merge in a single spool file the *SCS spool files of a given job which are in *READY status. In this way one may significantly reduce the number of spool files attached to an e-mail message. Read about it at page http://mmail.easy400.net/mmailh/othutils.htm#03bx . 2014-11-11 - Added option to create all MMAIL/CBX* programs with a target release other than *CURRENT . November 5, 2014 - V5R3 - Command EMLSPLX now enabled to use as spool conversion tools to PDF also IPDF and (if V7R2) CPYSPLFPDF. November 4, 2014 - V5R3 - Program EMLSPLX was failing in checking the correct spool file number and in handling PDFNAME(*AUTO). October 23, 2014 - V5R3 - In module XXXMAILSND of srvpgm SENDMAIL, lowered from 32767 seconds (9h 6min) to 60 seconds the time to wait for data area MMAILDATA/LSTEMSTAMP, thus limiting the impact of unlikely deadlocks. 2014-10-22 - A new command, MMAIL/CPYSPLFPDF allows to convert *SCS and *AFPDS spool files to stream file PDFs. It requires at least V7R2 and requires option 01 (AFP to PDF Transform) of the 57xx-TS1 product be installed. As of today this is the cheapest and easiest IBM i solution for converting spool files to PDF. 2014-10-18 - A free trial version of MMAIL (file "mmailtry.zip") has been made available for V5R3 and subsequent releases. This version is "object code only" and can be used for 30 days. A useful way to learn from experience what MMAIL can do for a computer shop. 2014-09-23 - Procedures MimeUpdTxt() and MimeVarTxt() now check that no substitution variables are substrings of subsequent substitution variables. 2014-09-09 - AMailer program AMXHISTORY. Fix: attachment icon should not be displayed for unexisting attachments. 2014-08-22 - Command SENDMIME now supports "*" for the current job and "*LAST", "*ONLY", or "*ANY" for the spool file number. - Module XXXMAILSND of service program MMAIL/SENDMAIL no longer shows the hurtless message "program WARNLSTRLS not found", that was resulting from a CHKOBJ command (now replaced). Some people were wondering whether they should care for it. 2014-08-14 - Fixed an unusual bug: QTMMSENDMAIL API would bump out if some email address has leading blank(s). Leading blanks in email address are now automatically trimmed off. 2014-08-02 - Fixed the following annoying AMailer problem: if a message received via AMailer is removed from the POP server with some other tool (e.g. Outlook), when it is deleted "for good" in AMailer, though it no longer shows up, it is retained both in AMailer data files and IFS directories. 2014-07-31 - Updated program PRCUSRMAIL so that an incoming message can be received just once. 2014-07-24 - Fixed a bug in command CRTMMLIB. The source of command MMGPSRVPGM was incorrectly tried to be retrieved from member GPSRVPGM (instead of MMGPSRVPGM) of file MMAIL/GPCLLESRC. 2014-07-03 - Some fix to program AMXHISTORY (list received mail messages) 2014-06-06 - Fixed sample program PRCUSRMAIL (Process user mail) 2014-06-05 - Fixed program CVTHTMPTXT (Convert an HTML stmf to a plain text stmf) 2014-05-11 - Updated module YYYDETACH of service program SOCKETMAIL. A number of variables were upgraded from (10i 0) to (20i 0) in order to allow for larger message parts. 2014-04-30 - Updated module YYYPROPERT of service program SOCKETMAIL. A number of variables were upgraded from (10i 0) to (20i 0) in order to allow for larger message parts. 2014-04-29 - Fixed a bug in program EMLSPLX: parameter PDFNAME in command MMAIL/EMLSPLX was incorrectly ignored. 2014-04-04 - Some updates to pgm SENDMIME: -- now free format -- some useful error messages -- body parts now generated before the attachment parts 2014-04-03 - To overcome problems with V7R1 and service program QTCP/QTMMCUTL, on V7R1 a class *SECOFR user profile is now required to install MMAIL. See https://groups.yahoo.com/neo/groups/Easy400Group/conversations/messages/18626 . - Fixed an annoying bug in MimeDistr() procedure of MMAIL/SENDMAIL service program. Bug description: If for an addressee the e-mail address was specified, but the related name was missing, the addresees list used to be truncated in the e-mail message envelop. 2014-04-01 - AMAiler. In command PRCUSRMAIL (Process user incomimg mail), a new parameter - BDYFMT (Message body format) - allows to select the format of the message body to be processed from the user program. Two formats are allowed: *HTML and *TXT. Processing message bodies in plain text format is usually an easier job. 2014-03-30 - AMAiler. More fixes when receiving e-mail messages from Domino, with a BASE64 encoded message body. 2014-03-28 - AMAiler. Some small fixes in mail receiving process. Program PRCUSRMAIL re-written in free format. 2014-03-17 - AMAiler. So far, AMailer was not able to display images embedded in the body of an e-mail message. Now AMailer would display such images as message attachments and make them visible in the message body. 2014-03-13 - AMAiler. Fixed the way the an attachment file name is picked up from the attachment header "Content-Disposition" in module YYYDETACH. 2014-03-02 - AMAiler. Added some flexibilities in sending some POP3 client commands and understanding the related responses. 2014-02-04 - AMailer program PRCUSRMAIL was uncontrolled failing when in command PRCUSRMAIL USERID('user-name') user-name was a non existing user name (ID), typical user error. Now the program returns an appropriate error message to the user. 2014-01-30 - More updates to module XXXINFOPRT. 2014-01-28 - Updated module XXXINFOPRT of service program SENDMAIL for more reliability. This module performs the conversion of spool files to PDF when the user requested conversion tool is IBM INFOPRINT. 2014-01-19 - Major update to commands used to clone MMAIL library: CRTMMLIB and UPDMMLIB. 2014-01-15 - Fixed a potential problem in SENDMAIL procedure StgToIfs(). Its code was not working for a zero-length string to be converted to an IFS stream file. Procedure StgToIfs() is used in some AMailer CGI program and in CGI program WRKSPL. 2014-01-03 - Updated SENDMAIL subprocedures in module XXXMIME to have e-mail message layouts as similar as possible to the ones from MS Outlook. - Fixed subprocedure DATE822 in module XXXDATE822, which was providing as name of the day the day before the current one. 2013-11-28 - Added command TESTEMAILA (test e-mail address). Use this command to test whether an e-mail address is validated as OK from subprocedure VLDEMAIL() of service program MMAIL/SENDMAIL. 2013-11-14 - When using IBM Infoprint Server to convert spool files to PDF, a MMAIL writer is started. This writer was not ended, thus causing message PQT3625 (Trying to re-connect unit MMAIL) being continuosly sent to the system operator message queue. This was fixed by forcing the end of writer MMAIL as soon as a spool file has been converted to PDF. 2013-11-09 - Fixed detection of Content-ID header when processing incoming mail, according to suggestions from Alessandro Baggio, dated November 5, 2013. 2013-10-15 - Fixed a bug in command MNGSPLF- It was failing to convert to PDF spool files to be e-mailed. 2013-10-13 - AMailer. Fixed subprocedure AMMDetach() in module YYYDETACH. It was truncating rather long attachment names. 2013-10-10 - AMailer. Implemented feature for receiving e-mail messages also from SSL-POP3 servers. - Command EDBG (Enhanced Debug) was made available "also" in library MMAIL. See page http://mmail.easy400.net/mmailh/commands.htm . 2013-09-30 - Fixed programs EMLSPL, EMLSPL2, EMLSPL3 and EMLSPLX which used to have problems with spool file numbers longer than 4 digits. 2013-09-25 - Physical file XXXVLDEMAI exported from library MMAIL to library MAILDATA, in order to preserve local updates. 2013-09-12 - It was reported that AMailer was no longer able to detach a message body when "Conteny-type: text/html". Fixed module MMAIL/AMDEBODY. 2013-09-10 - Source file *LIBL/QTXTSRC was incorrectly replaced by source file MMAIL/QTXTSRC when running the following commands: EMLMSG, EMLSAVF, EMLSPL, EMLSPLX, EMLSPL2, EMLSRCM, EMLSTMF and EMLSTMF2. The fix was to rename file MMAIL/QTXTSRC as MQTXTSRC and to update all the above programs. 2013-09-09 - Fixed a problem in command EMLPTUMSG: it was sending the message "just" to the first addressee. 2013-09-04 - Added parameter PREFORM (preformatted HTML body) to command EMLTXTSTMF. - Also compression of full IFS directories now supported on command MMAIL/ZIP. - AMailer: some fixes to MMAIL/SOCKETMAIL service program modules YYYDETACH and YYYPROPERT. 2013-08-31 - Fixed pgm STREMLSPLF which was no longer able to submit its batch job. - New parameter JUNK(*YES) on command ZIP prevents recording of directory names. 2013-08-29 - Updated the COMPILE program in order to remove all generated spool files. - Fixed the case where in command ZIP an IFS path contains embedded blanks. 2013-08-24 - Cleaned up some RPG code (got rid of "goto" statements to make ... Jon Paris feeling better) 2013-08-14 - Fixed missing parameter ReplyTo in pgm EMLSTMF2. 2013-08-07 - It was reported that in some (not clearly detected) cases, AMailer when detaching attachments may keep some attachment stream file allocated (the open stream file is left open). Three possible cases have been detected an fixed. They are all related with some decoding failure: error messages were already sent to the joblog. The following MMAIL/QRPGLESRC source members have been fixed: YYYDETACH, AM64DECODE, AMQPDECODE. 2013-08-02 - Fixed subprocedure MimeImbTxtF() that was not deleting work files created in IFS directory /mmail/work . - Fixed moule AMDEBODY for the case when the message body is only TEXT/PLAIN (no TEXT/HTML alternative provided). 2013-08-01 - Fixed subprocedure FixBody64() in module YYYFIXDB64 of service program SOCKETMAIL. - Fixed AMailer program AMXHISTORY. 2013-07-30 - Fixed trouble with pgm UPDMMLIB. It was not re-creating program COMPILE. 2013-07-25 - Fix: when the sequence number of the last MMAIL message reaches its upmost value, it must be reset to 0 (module XXXMIME). - Fixed sample command EMLDST which was having problems with Remote System Explorer (RSE). 2013-06-28 - Changed the way used by option A and B of command MNGSPLF and Spooled File Actions to retrieve default values for parameters FROMNAME, FROMADDR and TO of command MMAIL/EMLSPL. 2013-06-21 - Subprocedure qpr_decode() in module YYYQPRDEC of service program MMAIL/SOCKETMAIL was incorrectly translating character | to ! . 2013-06-19 - Some EML... commands were bumping out when parameter MSGM not specified. 2013-06-16 - SMS messages can be sent through an e-mail message to a SMS Gateway, see page http://mmail.easy400.net/mmail/html/emlsms.htm . - EML... commands using a source member to build the message body, now do check that a true source file is specified. - Length of e-mail addresses in EML... commands raised from 50 to 100 characters. - Fixed pgm TSENDASAMP. 2013-06-06 - AMAILER- Extended the UTF-8 support for the incoming mail messages received through AMailer. - Fixed program SENDMIME, so that addresses in blank copy are no longer shown on the message envelop. 2013-06-03 - AMAILER- Fixed module YYYPROPERT of srvpgm MMAIL/SOCKETMAIL: subprocedure GetMsgProp() was recording twice the message headers into the "properties" area. 2013-06-02 - AMAILER- Messages received, sent and deleted now listed in date-time descending order. 2013-06-01 - Fixed subprocedure RtvLclTZ() Retrieve Local Time Zone in processing the Daylight Saving Time. 2013-05-22 - New command EMLSPL3 (e-mail spool files), similar to EMLSPL2, builds the message body from a user-defined stream file containing either plain text or an HTML script. 2013-05-21 - New command EMLTXTSTMF allows to send a mail message containing .. a body built from a text stream file .. optionally up to 50 attached stream files. 2013-05-19 - *** THIS IS THE FIRST V5R3 RELEASE *** - Local time zone description now retrieved from system value QTIMZON (not previopusly available with V5R2) and API QWCRTVTZ. This was done in procedures Date822() and RtvLclTZ() (module XXXDATE822 of srvpgm SENDMAIL), and affects pgm TIMEZFMT. - Parameters REPLYTO and RTNPTH added to command EMLPTUMSG (E-mail impromtu message). 2013-05-18 - *** THIS IS THE LAST V5R2 RELEASE *** - Fixed management of parameter RTNPTH (return Path) in all programs related to commands EML... and STREML... . 2013-05-07 - Keyword EXPR(*YES) added to all applicable parameters of commands EML... . That will greatly help in building EML... commands in user programs. 2013-05-06 - Keyword CASE(*MIXED) added to all applicable parameters of commands EML... . - Pgm WRNLSTRLS now issues the warning message for a superceded MMAIL release only if an interactive job. - Module YYYDETACH of srvpgm SOCKETMAIL fixed to allow for extracting large attachments. 2013-04-23 - Fixed bug in AMailer pgm PRCUSRMAIL, when processing the incoming mail for a local user created over an existing user profile. 2013-04-16 - In module XXXMIME added escape messages whenever a stream file cannot be opened. 2013-04-15 - Fixed a small Javascript error in /mmail/amailer/html/mailusers.htm. It was giving problems with I.E.. 2013-04-13 - A new MMAIL command, EMLPTUMSG, allows to send an impromptu message (maximum length 5000 characters) up to 50 e-mail addresses. 2013-04-10 - As a rule all MMAIL e-mail commands perform validation of the e-mail addresses and if an error is found, the message is not sent. A new command, VLDEMLADDR, allows now to disable and to re-enable this validity check. 2013-03-16 - Fixed program COMPILE for creation of pgm SPLPDFCVT. 2013-02-05 - In command EMLSPL and EMLSPL2, the length of the following parameters has been raised from 60 to 256 characters: -- name of the generated PDF -- PDF save directory -- save directory - Commands EMLSPL and EMLSPL2 have been added a new optional parameter to assign a prefix to the name(s) of the PDF(s) archived (saved) in IFS diretory(ies). 2013-01-28 - Provided documentation about E-Mail/SMTP Authentication. Documentation is available from the MMAIL FAQ page. 2013-01-26 - Updated external HTML stream files /mmail/html/wrksplf.txt and /mmail/html/wrkwtr.txt used by MMAIL WEB utilities WRKSPLF and WRKWTR documented at page http://mmail.easy400.net/mmailh/othutils.htm#12 . Those HTML stream files were no longer working with recent versions of Firefox browser. Reason was that javascript functions named "top()" had to be renamed "pagetop()", because Firefox, since release 17.0.1, understands word "top" as some kind of property. 2013-01-16 - Updated sample command/program EMLDST to support also value 'application/octet-stream' for parameter ATTACHTYPE. 2013-01-12 - Subprocedure CvtStmf() of service program MMAIL/SENDMAIL now renamed Cvt_Stmf() because a subprocedure named CvtStmf() already exists in service program MMAIL/GPSRVPGM. 2012-12-18 - New command EMLHTML2 allows to create and send a mail message having an HTML stream file as body and attaching up to other 30 stream files. See page http://mmail.easy400.net/mmailh/othutils.htm#05c . 2012-12-09 - Some improvements to program CRTMIME. 2012-11-28 - Some diagnostic messages added to AMailer program AMHEADER. 2012-11-09 - Updated two modules of MMAIL/SOCKETMAIL service program: --YYYPROPERT: subprocedure GetMsgProp - Fixed the way to extract attachments from a message stream file. --YYYQPRDEC: subprocedure qpr_decode - Improved the method to translate EBCDIC characters to ASCII character in order to properly decode Quoted-Printable encoded PDFs. (96 special characters involved). 2012-11-05 - Updated a module of MMAIL/SOCKETMAIL service program: --YYYPROPERT: subprocedure GetMsgProp - Fixed the case where part-ending delimiters were hard to be found. 2012-11-04 - Updated a number of MMAIL/SOCKETMAIL service program modules: --YYYPROPERT: subprocedure GetMsgProp - Changed the way the message file is read into memory --YYYFIXBD4: subprocedure FixBody64 - Removed a potential infinitive loop --YYYSOCKET: subprocedure pop3RtvMsg - Routine MsgToIFS keeps getting from POP3 Server until end-of-data sequence is received. This was done because in some cases the message stream file being created resulted shorter than due. 2012-10-30 - MMAIL provides a number of free tools for spool-to-pdf conversion. However, since ever the problem was how MMAIL/...EML.. commands could re-receive appropriate PDF generation parameters, like orientation, font size, etc. A number of partial solutions were provided in the recent past. Today, a new more powerful command, SPLPDFCVT, allows to pre-define spool-to-pdf conversion parameters, so that you may attach appropriate PDFs to your e-mail messages. This is documented at page http://mmail.easy400.net/mmailh/othutils.htm#pdfparams . 2012-10-25 - Some changes to subprocedure MimeImbHtml(). It used to encode the text as Base64 (required for UTF-8, optional for other character sets) for any character set. Now text encoding to Base64 takes place ONLY if character set is UTF-8. For other character sets, text encoding is now back to quoted-printable. - Created a new subprocedure, named "MimeVarTxt". This subprocedure creates a customized (variables resolved to values) stream file from a template stream file (containing variables). 2012-10-24 - Updated subprocedure MimeDistr(). The internal length of addressee names raised from 50 to 256 characters. Reason was that, when character set UTF-8 is used, the length of an UTF-8 converted name may exceed 50 characters. Of course, the procedure interface has not been changed: the length of input addressee names is still 50 characters, thus providing total transparency to the existing programs. 2012-10-10 - Some changes to subprocedure MimeImbTxtF(). It used to encode the text as Base64 (required for UTF-8, optional for other character sets) for any character set. Now text encoding to Base64 takes place ONLY if character set is UTF-8. For other character sets, text encoding is now back to quoted-printable. 2012-09-20 - Used a more efficient method for assigning sequence numbers to the PDF attachments generated by commands EMLSPL and EMLSPL2. 2012-09-19 - Fixed a number of e-mail programs: EMLHTML, EMLMSG, EMLSAVF, EMLSPL, EMLSPLX, EMLSPL2, EMLSRCM, EMLSTMF, EMLSTMF2. *TO and *CC addressees following a *BCC addressee were not displayed on the message headers (though the message was regularly sent also to them). 2012-09-12 - Command MMAIL/IPDFCMDPRO allows to get the best from IPDF when you need to e-mail a spool file converted to PDF. Look for IPDFCMDPRO at page http://mmail.easy400.net/mmailh/othutils.htm#createipdf . 2012-09-05 - MMAIL now supporting product "iPdf" from Orati-Systems for spool file to PDF conversion. See page http://mmail.easy400.net/mmailh/othutils.htm#10 . - Fixed module MNGSPLF1, used by pgm.s MNGSPLF amd WRKSPLF, it had problems with V71. 2012-09-03 - Fixed subprocedure CHKIFS() to return the object creation date instead of the attribute change date. 2012-08-30 - Fixed pgm RESEND. 2012-08-19 - Calls to procedure ChkIfs() replaced with calls to procedure ChkIfs4(). 2012-08-09 - When displaying a message sent from a MMAIL/EML... command, the sender's name was not visible (just the e-mail address was visible). Now the sender's name is displayed before the sender's e-mail address. - When character set UTF-8 is used (see command MMAIL/CHARSET), the sender's name and the names of the recipents are now encoded in UTF-8, thus providing full support for special national characters. 2012-08-05 - Fixed module AMDEBODY when detaching a message body encoded in Base64. - Fixed program AMDSPMSG when displaying a message body encoded in Base64. 2012-08-03 - Subprocedure MimeSubj (create SUBJECT header) will now encode the subject text in UTF-8, ONLY if UTF-8 is the default or requested character set. 2012-07-30 - Updated subprocedure AMDETACH, to avoid generation of useless attachments in receiving AMailer messages when character set UTF-8 is used. 2012-07-10 - The subject of messages is now encoded in UTF-8, thus supporting also national languages with character sets other than ISO-8859-1. - MMAIL is now supporting character sets other than ISO-8859-1, uncluding UTF-8. MMAIL therefore is now able to send mail messages in languages like Czech, Hungarian, Polish, Norvegian, Swedish, etc. Character set UTF-8 is recommended. Use command MMAIL/CHARSET to set your default character set. 2012-06-26 - Fixed two programs (MAILUSERS and AMCHGACT) that would not compile. 2012-06-15 - In MMail commands EMLMSG, EMLSRCM, EMLSPL, EMLSPL2, EMLSAVF, EMLSTMF and EMLSTMF2 use a source member for the text of the message body and the related programs execute a STRSEU command to edit the source member. The following enhancement has been provided. If command STRSEU is not avalable (a very common case on production boxes, where PDM is not installed), the EML... programs, instead of STRSEU, send now a display file screen that allows the user to edit the source member text. If the user presses F3 from this screen, then command EDTF is executed. 2012-06-08 - MMail allows not only to send mail messages, but also to receive mail messages addressed to given user accounts. This can be done through the MMAIL-integrated utility named "AMailer". Incoming mail messages can be received and processed through a local program on a IBM System i box. Both Internet and System i locally defined user accounts are supported. "AMailer" provides tools to define such accounts. System i locally defined user accounts are supported through "AMailer" generated user profiles. However, a System i box can be already supporting mail exchange among local users using existing user profiles. The good news is that now "AMailer" is also able to generate its mail accounts by referring to existing system profiles. In this way, already existing local mail user environments may take advantage of processing through local programs the incoming mail to local accounts. For detail information see page www.easy400.net/mmail/amailer/tutorial/mailusers.htm . 2012-05-10 - Fixed a potential cause of error in subprocedure RTVLIBRNAME, MMAIL/QRPGLESRC member XXXMIME. - Fixed a potential bug in subprocedure MIMEUPDTXT, MMAIL/QRPGLESRC member XXXMIME. 2012-04-30 - Fixed the OVRDBF for TEMPID in subprocedure NXTMSGN, MMAIL/QRPGLESRC member XXXMIME. March 21, 2012 - V5R2 - Added module UPDMMLIB0 to pgm UPDMMLIB. That was needed to duplicate missing files in the cloned library. 2012-03-15 - Slightly changed the way commands SETSPLSTMF and SETSPLFPDF work with the related commands CVTSPLSTMF and CVTSPLFPDF. --Previously, when SET... *ON, the override of the CVT... command optional parameters was always taking place. --Now, the override of the optional parameters takes place only if in the CVT... command the default values are used. 2012-03-14 - Fixed pgm EMLSPLX. In handling parameter PAGESIZE(papersize orientation), it was incorrectly forcing papersize to *N when orientation *LANSCAPE or *PORTRAIT . 2012-03-07 - Added command INSTALLZIP. It installs commands zip and unzip for QPASE and QSHELL. To be used if the installation of zip/unzip commands not performed at MMAIL install time. 2012-02-29 - Updated subprocedures MimeSplpdf and MimeImbAtt so that attached PDF names are no longer suffixed with a 5 digit number (e.g. "QPDSPLIB_97813.PDF" will now be "qpdsplib.pdf"). 2012-02-24 - On a V7R1 box, subprocedure MIMEMULTIP (module XXXMIME) is reported to occasionally fail when calling subprocedure RANDOMSTRING. The failure occurrs in API CEERAN0 when called from RANDOMSTRING. Similar failures of API CEERAN0 have been reported now and then on V7R1 and may be due to some missing PTF. Anyway, a tentative fix was added to MMAIL module XXXMIME. The fix monitors all calls to subprocedure RANDOMSTRING and, on-error, returns a string computed in an alternate way. 2012-02-22 - Fixed subprocedure MIMEIMBSPL for the case when dealing with a PDF instead of a spool file (subprocedures "lockPdfName" and "unlockPdfName" were given a different pdf name). 2012-02-21 - Fixed source SPL2STMFRP in MMAIL/QRPGLESRC. 2012-02-12 - Fixed command and pgm EMLSPL: spool file number was 4 digits instead of 6. 2012-01-17 - Fixed again module XXXQPRENC of service program MMAIL/SENDMAIL. 2012-01-16 - Updated pgm SENDMIME for CCSID 65535 and for charset='*SAME' 2012-01-12 - Commands MMAIL/SETDSPLFPDF *OFF and MMAIL/SETSPLSTMF *OFF were not working as expected. 2012-01-09 - Fixed bug in MNGSPLF. In some cases it was servicing option A as option B. 2012-01-06 - More fixes to module XXXQPRENC of service program MMAIL/SENDMAIL. 2012-01-05 - Added command MMAIL/UPDMMLIB. It allows to update a MMAIL cloned library (originally created with command MMAIL/CRTMMLIB) with fresh software from the last installed release of library MMAIL. 2011-12-31 - Fixed program HPT/SPL2STMFRP, which was causing problems with CVTSPLFPDF. - Fixed module XXXQPRENC of service program MMAIL/SENDMAIL. It was occasionally bumping out with error message MCH0601 (Space offset ... outside current limits). This error was appointed to the calling program (usually EMLMSG) when calling subprocedure "MimeImbTxtF". - Added command DUPSRVPGM, see http://www.easy400.net/mmail/start#dependencies . 2011-12-12 - Fixed the HTML of CGI programs WRKSPLF and WRKWTR. 2011-11-22 - Updated ZIP and UNZIP commands to the latest version of utility ZIP (library ZIP). 2011-10-07 - Updated EML... commands documentation, by adding a remark about writing the message text. - In all EML... commands, if the sender's name is blank, now it is replaced by the sender's e-mail address. This is done to prevent an increase of the SPAM level of the message. 2011-10-05 - Windows utility now back to operation. - In module XXXMIME, local subprocedure CvtTxtHtml now does not replace EndOfRow characters with < br > if the message text happens to contain HTML tags. 2011-10-01 - Updated the compile programs 2011-09-30 - Fixed a /copy in MMAIL/GPRPGLESRC member GPCGIPARS 2011-09-29 - It is now possible to insert images (for instance a logo) in message bodies of EML... commands, by simply specifying the images to be displayed. As an example, if you want to display a boat image, just insert something like this in any point of your message text: < img src="http://www.easy400.net/mmail/image/0002378.gif" > 2011-09-19 - Revised MMAIL documentation WEB pages - Created an "MMAIL Developer Guide" PDF that can be downloaded. 2011-08-31 - Small change to RPG pgm CVTSPLFPDF (esc message if a mandatory library is missing) - Small update to CL pgm INFOPRINT - Updated subprocedure InfoPrint with more diagnostic messages - Program EMLSPL and EMLSPL2: -- if failing to convert an SCS spool file to PDF, will attach it without conversion to PDF -- if not succeeding at all in attaching a spool file, will not send the e-mail message. August 28, 2011 - V5R2 Provided a parameter to zip (compress) attached spool files (either converted to PDF or not). This feature applies to commands: EMLSPL, EMLSPL2, EMLSPLX, EMLSTMF and EMLSTMF2. 2011-08-27 - Updated the method to retrieve the PDF generated from INFOPRINT for spool file conversion (module XXXINFOPRT). 2011-08-19 - In e-mail messages, now the name of the sender and the names of the recipients are enclosed in double quotes ("). 2011-07-29 - Extended to 132 million records the maximum capacity of the 3 work files used by command CVTSPLSTMF, in order to support very large spool files. 2011-07-20 - Changed somehow the compile stream. 2011-07-17 - Added a few diagnostic message to subprocedure MimeSplPdf in module XXXMIME. 2011-07-14 - An installation reported that program MMSAIL/COMPILE failed creating 14 programs because of error "Definition supplied multiple times for symbol ...". Fixed pgm MMAIL/COMPILE. 2011-07-08 - Added parameter SENDERCOPY to commands STREMLSPLF and STREMLSPL2. This parameter allows to specify whether a blank copy of each automated message should be sent to the sender. 2011-06-16 - Fixed some comments on /mmail/conf/httpd.conf . June 11, 2011 - V5R2 2011-06-11 - It was found that CVTSPLFPDF (while able to convert to PDF *SCS and *AFPDS spool files) would fail in converting to PDF *IPDS, *AFPDSLINE and *LINE spool files (Error message: "API QwpzHostPrintTransform failed : CPF6DF8 hptopt = 30"). On the other site it was found that CVTSPLSTMF, besides converting *SCS spool files, has no problems in converting to PDF *IPDS, *AFPDSLINE and *LINE spool files. We therefore updated subprocedure MimeSplfPDF in such a way that, when requested to process a PDF conversion for an *IPDS, *AFPDSLINE or *LINE spool file via CVTSPLFPDF, it calls CVTSPLSTMF instead. 2011-06-06 - Added overrides to pgm.s COMPILE and AMCOMPILE in order to avoid compile errors due to omonymous file names . 2011-05-31 - It was reported that program EMLMSG would randomly bump out with MCH0601 (Space offset X'00F46000' is outside current limits). That appeared to occur during execution of subprocedure MimeImbTxtF. No clear indication was available about the cause of the error. Under suspicion that the error might being caused by subprocedure AddHyper, a *PSSR subroutine was added to this procedure, see QRPGLESRC member XXXHYPER. 2011-05-27 - ASP support provided for subprocedures MimeIbmSpl and MimeImbSRC. This ASP support deals with command CPYTOSTMF (ASP name required in parameter FROMMBR). 2011-04-01 - Applied some changes to module xxxINFOPRT (Infoprint spool->PDF conversion) in order to save the spool file after been printed and to move it back to its original output queue. 2011-03-25 - Service program MMAIL/GPSRVPGM aligned again to the last version of service program CGIDEV2/CGISRVPGM2. 2011-03-22 - Service program MMAIL/GPSRVPGM aligned to the last version of service program CGIDEV2/CGISRVPGM2. 2011-01-14 - EML... validity checker programs did not accept the sender's address *DIRENT as a valid e-mail address, and had to be fixed. Validity checker program involved were: EMLHTMVCKR, EMLMSGVCKR, EMLSAVVCKR, EMLSPLVCKR, EMLSPL2V, EMLSRCVCKR, EMLSTMVCKR, EMLSTMVCK2 . 2010-12-24 - Parameter RTNPTH (Return-path) added to all EML... commands. 2010-12-18 - Program WARNLSTRLS (called by module XXXSENDMAIL) now provides an alert message every 15 days (no longer every day) if a new MMAIL release is available and not yet installed. 2010-12-03 - Changed the naming of PDF attachments when created from commanfs EMLSPL, EMLSPL2 or EMSPLX. - when the PDF name is specified as "*AUTO" -- the first spool file converted to pdf is assigned name spoolFileName_nnnnn.pdf where nnnnn is a random number (used to make the PDF name temporarily unique on the System i) -- any further spool file converted to pdf is assigned name spoolFileName(s)_nnnnn.pdf where nnnnn is a random number s is a sequence number - When the PDF name is specified as "pdfname.pdf" -- the first spool file converted to pdf is assigned name pdfname_nnnnn.pdf where nnnnn is a random number -- any further spool file converted to pdf is assigned name pdfname(s)_nnnnn.pdf where nnnnn is a random number s is a sequence number 2010-12-02 - Updated subprocedure MimeSplPdf of service program SendMail, in such a way that concurrent spooled file conversions to PDF from the same spool file name are now queued. - In command CVTSPLFPDF changed to an unique value the name of the temporary TIF object, in order to avoid conflicts between two parallel objects creating the same PDF. 2010-11-09 -Removed option 5 from command CVTTOPDF. -Command EMLSPL can now be used to send also PDF's. -Updated documentation on V6R1 Spool File Transform feature. 2010-11-04 -Added command STMFCVT, Convert a stream file to another CCSID. 2010-11-01 -In service program SENDMAIL module XXXMAILSND, fixed the case where the system time-date was set back (that was causing excessive delay time in e-mailing messages). 2010-10-30 -Added support for Spooled File Actions. If your system is at least at release V6R1, on command WRKSPLF (and other commands dealing with spool files), you may install more options (A, B, C and D) to e-mail spool files or to save them as IFS stream files (text or PDF). See page http://www.easy400.net/mmailh/othutils.htm#11a . -Added command WRKUSREML. This command allows to maintain e-mail addresses for user profiles. One advantage of this command is that, when running command MNGSPLF or using the V6R1 Spooled File Actions, and selecting option A or B (e-mail a spool file), the EMLSPL command is prompted with the destination address already filled in. That increases by far the ease-of-use. 2010-10-20 -Some fixes to XXXMIME local subprocedure STMFTOASCII. 2010-10-18 -Updated subprocedure MIMEIMBATT to automatically convert "application/octet-stream" attachments to code page 1252 (*PCASCII) unless this is explicitly denied. To support this feature, subprocedures CVTSTG and CVTSTMF have been added to service program SENDMAIL. 2010-10-17 -Updated pgm WARNLSTRLS. October 12, 2010 - V5R2 2010-10-12 -Further fix to subprocedure ExitPoint1 in module XXXMAILSND of service program SENDMAIL. This time forced open of file EXITPOINTS every time this procedure is called. 2010-10-09 -Updated pgm WARNLSTRLS. 2010-10-08 -Fixed pgm COMPILE for use of command CRTMMLIB. -Fixed subprocedure ExitPoint1 in module XXXMAILSND of service program SENDMAIL. It was failing in accessing file MMAILDATA/EXITPOINTS and causing the EML... command to fail. 2010-09-23 -Fixed the