soyMAIL Release Notes and Change Log ------------------------------------ With thanks to all those who have tried soyMAIL and taken the time to report it wanting in some respect (and apologies if I've neglected to acknowlege your contribution on this list). Jeremy Begg (vsm.com.au) Jerry Alan Braga (flanagan.ca) Verne Britton (wvnet.edu) Alex Daniels (mfi.co.uk) Derek Garson (ilg.com.au) Christoph Gartmann (immunbio.mpg.de) Francesco Gennai (isti.cnr.it) Victoriano Giralt (uma.es) Hunter Goatley (goatley.com) Peter Goodwin (mfi.co.uk) Willem Grooters (grootersnet.nl) Dave Jones (ohio-state.edu) Carl Karcher (waisman.wisc.edu) Bill Korendyk (wilkor.ca) Marty Kuhrt (kuhrt.com) Tom Linden (kednos.com) Ira Melamed (farmingdale.edu) Rene Mendoza (coloradomtn.edu) Phil Ottewell (pottsoft.com) Jean-Pierre Petit (esme.fr) Karl Rohwedder (gmx.de) Malcolm Smeaton (canterbury.ac.nz) Massimo Vitali (marionegri.it) David Webb (mdx.ac.uk) Frank Weichert (Ruwel-Pfullingen.de) Dean Woodward (locktrack.com) ************ * v1.5.0 * ************ * Better (well, working) PMDF IMAP integration. Does NOT WRITE into PMDF IMAP maintenance files. Merges the VMS Mail folder list with the PMDF IMAP 'mailbox' folder list allowing soyMAIL to access PMDF IMAP subfolders (and sub-subfolders, etc). PMDF IMAP subfolders can NOT be created or deleted but the mail messages contained in them can be. Normal (top-level) Mail folders can be managed by soyMAIL as usual. PMDF IMAP should rebuild its own structures to reflect changes made by a soyMAIL session. The user option "PMDF IMAP" checkbox enables this. * Larger compose page contact lists will expand the number of entries displayed when accessed. This improves browsing of the list. Clicking on any part of the message edit panel will revert the list size to normal. This expanded contact list also presents a text field. Into this field any character or characters may be entered displaying entries containing matching strings. Successive matching entries may be stepped through using the [<-Enter] key. A leading vertical-bar ("|") matches against leading characters only. * Compose page, external contact (mailing) lists may now be in LDIF format. This allows 'corporate address books' to be made available to soyMAIL. List loading has been optimised allowing those with thousands of entries to be efficiently accessed. Using soyMAIL as a command-line utility to pre-process the list (/LDIF=PURGE) can further improve loading performance. * Support for non-Latin character set messaging. soyMAIL has supported reading messages in any browser and platform supported character set by supplying the associated response charset header. It is now possible through user option and/or global configuration to compose messages using any such character set. Message read and message composition text directionality (right-to-left scripts, e.g. Arabic and Hebrew, as well as the default left-to-right) is also supported. See Install and Admin document for further detail. * When reading a message, embedded mailto: URLs or email addresses now open an addressed soyMAIL composition page (rather than the previous browser-defined email agent). * The [Add contact as:][_____] is now [Add contact as:][^][_____] where the [^] opens a child window containing the contacts page allowing immediate edit and then [Save] of added contact. * The compose page [Compose][^] (new window) button always opens an empty composition page. The [Compose] button continues to refresh any exisitng message composition. * For platforms not supporting suitable WAV play functionality used for announcing arrival of new mail there is a 'three beep' announcement available from the user options page. The browser must support Java. * User options have been reorganised into function-related panels. * User options and soyMAIL configuration now allows the message composition values for edit rows, columns and wrap to be modified from default. * soyMAIL autogenous login now supports password change, either with expired password at soyMAIL login or ad hoc at login. Autogenous login type (NETWORK, LOCAL, REMOTE, etc.) can be configured. * Using configuration directive [login-alias] soyMAIL autogenous login can map from a user-supplied user name to another string that is then used as the authentication username. In this way the user can supply an alias such as "Mark.Daniel" which could then be mapped to SYSUAF username DANIEL for example. * Configuration directive [compose-user-from] when ENABLED allows a user to enter a "From:" address on the composition page. If DISPLAY then an unmodifiable "From:" address is displayed. * When [compose-user-from] is ENABLED a user may also prepend to signature content, lines containing either or both of "[SMTP-from]
" and "[SMTP-reply-to]
", setting the respective message header field at signature load. This allows a user multiple mail identities (or personas) each conveniently associated with a signature. * When directive [user-name-info] is ENABLED the status panel displays the current login VMS username immediately preceding the status message. If ALIAS and [login-alias] is in use the login alias name is displayed. * Configuration directive [include-file] can be used to specify a separate configuration file to be loaded and processed at the point of inclusion. These can be nested to a depth of two. * Administrators note that HTML editor initialisation contains a new function HtmlEditorContent() that should be added to soyMAIL configuration if deployed. See Admin and Installation document. * NOTE that VAX platform development and support will be discontinued following version 1.5 of soyMAIL. ************ * v1.4.2 * ************ * To better support non-disclosure of recipients specify the "To:" address field as "(undisclosed)"@undisclosed (which will be accepted by most mail transport agents) and place the intended recipients in the "BCC:" field. Any address beginning "(any-string)" can be used, it's the delimiting quotes and parentheses that are significant. * The number of HTML entities (e.g. "Ò", representing specific characters) understood by soyMAIL has been extended improving rendering for non-English languages. * Cascading style-sheets changed from "font-family: fixed, monospace;" to "font-family: monospace, fixed;" improving default font handling on non-VMS, non-Windows platforms (e.g. FreeBSD KDE). CSS also include markup to better allow links in header and footer panels. * A number of minor bugfixes (see SOYMAIL.C for log). ************ * v1.4.0 * ************ * Unread messages in the NEWMAIL folder (i.e. new messages) are bolded for easy identification. When opened from the list the bolding is removed and the message no longer flagged as unread. * The message listing page highlights (underlines) the message header text (received, from, subject) the mouse is currently over (checkbox, button or message header; requires JavaScript). * A message may be opened in a new window/tab by clicking on any of the message header field text (received, from, subject). * The composition page [send-close] button will now also be active in the parent window/tab. After a successful send a parent window will then open the current folder and list the messages. Button behaviour in a child window/tab is unchanged (closes the child). * The composition page [signature] button can now have an optional user-signature selector available to choose one of multiple signatures to apply to a message. These signatures are created via the options page. A user-signature must be optioned as the default for the selector to be present. * The options page now provides an entry field below the default signature selection option allowing a user-specified signature to be created. Multiple such signature can be maintained and selected from on the composition page. * 'Sent Items' folder can be specified to be NEWMAIL. * Configuration now supports dedicated access where a Web service can default to soyMAIL allowing empty access URIs and less cluttered browser location fields. * User options overridden using the [user-options-override] configuration directive are now disabled in the user options setup page. The overridden option value is displayed but cannot be changed by the user. * Italian language contributed by Francesco Gennai. Many thanks. soyMAIL now supports six - Dutch, English, French, German, Italian and Spanish. * New configuration directive [login-acme-no-restrict] allows valid authentications that have login restrictions (due to source or date/time) to continue to use soyMAIL. * External authenticator available via [login-agent] directive. * (Somewhat lame) read history facility and user option removed. ************ * v1.3.3 * ************ * New configuration directive [access-log] generates an NCSA 'combined format' access style log file. The log is designed supplement (not supplant) the server access log with authenticated username data for soyMAIL autogenous authentication (data that is no longer available in the server access log because it is no longer performing the authentication). Until this directive makes it's way into the documentation please check function RequestAccessLog() in module REQUEST.C for configuration information. * A couple of minor bugfixes and refinements. ************ * v1.3.2 * ************ * bugfix; Autogenous login under OSU (thanks Christoph Gartmann). ************ * v1.3.1 * ************ * The composition page attachment browse function now automatically initiates upload when a file is selected (with JavaScript enabled). This obviates explicit use of the [Attach] button. * bugfix; Folder buttons not correctly establishing VMS Mail file and folder context before being used to move messages. * bugfix; MSIE (ahyup, all the others worked) not automatically setting an uploaded attachment delete checkbox. ************ * v1.3.0 * ************ * This is the "Tribute to Bill Korendyk's Doggedness" release. For his persistence and patience when testing successive, broken BETA releases :-) and for his thoroughness with each iteration. * A soyMAIL autogenous (inherent, internal) authentication system. It accepts a username and password from a soyMAIL login page and authenticates these credentials using internal code (either using $ACM service for Alpha/Itanium VMS V7.3 and later or $SCAN_INTRUSION+$GETUAI+$HASH_PASSWORD for earlier VMS and VAX). This allows a more effective logout mechanism to be used. Encrypted credential data is propagated from request to request using a cookie (and so these must be enabled to use autogenous authentication). Of course, server-mediated HTTP authentication continues to be available. * Constrain the width of the open folder and destination folder selector dialogs for improved real-estate consumption with very long mail file or folder names (in excess of twenty characters). Only MSIE6 seems to have an issue with this. All the others provided an non-width-constrained drop-down option list but IE kept the constrained size making it a little more difficult. Hopefully this will have been changed with MSIE7. * Improve behaviour when operating with multiple mail files (DECwindows Mail 'drawers'). The [copy][move] destination selector refreshes the selector with a mail file's folders (as appropriate and with JavaScript enabled). Provide a destination mail file name as well as a folder name text field. Delete non-MAIL.MAI (non-primary) mail files when they are emptied of all messages (contain no folders). * PMDF IMAP subfolders are now accessable. PMDF IMAP mail files (subfolders) are distinguished from VMS Mail mail files by having a double trailing slash, e.g. "Example Folder //" and "Another // Example". It is important to be aware that soyMAIL does not implement the same functionality as the PMDF IMAP server and so changes made to subfolder contents may not necessarily be reflected when accessing the same areas via PMDF IMAP (though I'm told it is pretty good at rebuilding it's understanding of the user's Mail repository). * Support EFS compliant mail file names ('drawers') for user mail directories residing on ODS-5 volumes (though don't know how portable these might be to other mail agent environments). * Make the [delete][waste] buttons on the message read page be consistent with that on the message listing (folder) page. That is, change from [delete][waste][<<][||][>>] to [<<][||][>>][waste][delete]. * On the message composition page, attachments panel, a checkbox is now present alongside the [delete] all attachments button (on the far left, above the [attach] button). If this checkbox is set all attachments listed in the panel are deleted after a successful [send] (or [send-close]) of the message. * New user option [DraftItemsFolder] allows the specified folder to be used to store one or more composition message drafts. This defaults to "Draft Items" (English language version) but can be set to another name. This folder may be listed as any other can but selected messages are opened in the composition page. Messages in this folder can be deleted, etc., like any other, though messages cannot be copied *into* the folder. The previous behaviour of the [save] and [restore] buttons are now superceded by this new functionality. * New user option [SentItemsFolder] WHEN SET (non-empty) results in the automatic copy of successfully sent messages into the specified folder. "Sent Items" would be a reasonable English language setting. Messages in this folder can be deleted, etc., like any other, though messages cannot be copied *into* the folder. * New user option [WasteItemsFolder] allows the [Waste] button folder name to be specified. The English language default is "WASTE Items". Messages in this folder can be deleted, etc., like any other and of course [Empty]ed. The previous waste folder name "soyWASTE" is not longer used or the default. * New user option [message-attachment-panel] when set to 1 allows the message attachment panel to be placed above the message body. This requires a manual edit of the user SOYMAIL_OPTIONS.TXT (as it seemed a rather idiosyncratic option and I wish to avoid cluttering the options panel). * Purveyor Encrypt WebServer is now explicitly excluded from soyMAIL support. A significant issue has been identified as Purveyor corrupting "text/.." response data with extraneous linefeeds if the script process SYS$OUTPUT, 1024 character capacity mailbox, inadvertently fills during processing (the symptoms of which have been reported on a number of occasions). Google groups for "soymail purveyor mailbox 1024". There is NO POSSIBILITY of this bug being fixed: http://www.process.com/techsupport/maintagreement.html ************ * v1.2.2 * ************ * bugfix; CerealDataOut() perhaps those ambits were not the issue, set a minimum buffer space of 256 (to catch possible zero-length data streams that still need a hash). ************ * v1.2.1 * ************ * Rework reply-all address compilation so that the original 'to:' goes to the new 'to:', original 'cc:' to new 'cc:', and duplicate addresses are eliminated. * Make minor allowances for user option selected monospace font. However the three tested browser families all seem to handle monospace differently so it's all very hit-and-miss. Who selects monospace unless it's fixed format anyway! (Bill? :-) * New user option [message-order] allows the message listing order to be specified. This currently requires a manual edit of the user SOYMAIL_OPTIONS.TXT (as I did not want to have do a round of language-specific message changes for an interim release). Set to 1 for ascending order (more recent messages towards the top - default) or -1 for descending order (more recent towards the bottom). * Ackk!! Looks like I'll need to reinstate the BETA test phase ... * bugfix; ComposePage() HTML-escape the hidden signature. * bugfix; ComposeTextMassage() retain quote-char as a string. * bugfix; ComposeSendMessage() check reply-to for VMS address (Non- info-WASD subscribers are lucky to have info-WASD subscribers get all of my stupid errors winnowed-out before public release.) ************ * v1.2.0 * ************ * New configuration directive [vms-occluded]. This option when enabled 'hides' VMS-specific features and behaviours (e.g. the VMS user options, and [extract] button described below). * New configuration directive [disk-quota-percent]. This option controls the user disk quota used percentage before utilisation notifications are generated. These use the status information to notify the client of disk quota in use with each folder opened once disk quota usage reaches the percentage. It defaults to 85%, can be disabled by setting to anything above 100, and made permanently enabled by setting to 0. * New user option [sig-file] allows the source of the signature file to be specified. That set by the VMS Mail configuration (default), a soyMAIL-specific file (SOYMAIL_SIGNATURE.TXT), or none. * The help "About" page now contains a disk quota report item. * The message read page now contains an [extract] button (if VMS is not occluded). Selecting this button extracts the specified message parts (attachments) as files into the user home directory. File names are prefixed with "SOYMAIL-" to avoid clashes with non-soyMAIL files in the area. The rest of the file name is generated from the part name. * Identify and make available any HTML content in a non-MIME message or in MIME text/plain in-line content. Requested functionality for the occasional broken message that gets through. * The message composition page now provides for the selective [forward]ing (from the message read page) of MIME attachments (without the [save] and 're-attach' of prior versions). It also indicates the presence of MIME attachments in the original by introducing [[attachment-name]] into the message text of [reply..]ed-to messages. * The message composition page has had significant JavaScript enhancements to refine address entry and message reset/clear/new functionality. This reduces the number of times the composition page needs to makes a request of the soyMAIL server. The [normal/wide] button has been replaced with one divided into two segments, [20 x 72] (initial value). The left controls the number of text rows, the right the number of text columns. * The RFC "Date:" field is now derived from the client browser (via JavaScript if enabled) rather than from the system soyMAIL is executing on to better represent message origination date/time. * Configuration directive [SMTP-default-host] has proved to be problematic when interacting with genuine VMS addresses. As a result a VMS address has been defined to be one containing a node specification (i.e. "::") or an all upper-case string. Either of these characteristics is used to determine address type (Internet or VMS) and additional checks have been provided to ensure that appropriate addresses are supplied for copy-self, etc. * Search "Results page every:" option now has an "all hits" item which will return a single listing containing all hits. * German versions of the help files thanks to Karl Rohwedder. * New language file messages; [about_disk_quota], [disk_quota_used], [attach_extract], [attach_extract_done], [option_soy_sig_file], [option_soy_sig_file_default], [option_soy_sig_file_soymail] and [option_soy_sig_file_none]. * Remove language file messages; [vms_foreign], [compose_edit_normal], [compose_edit_wide]. * Modify language file messages; [option_vms_sigfile] to [option_sigfile], [option_vms_sigfile_save] to [option_sigfile_save]. * bugfix; Contact import and merge were severely broken (the author must have been clinically brain-dead at the time). They now work correctly. All contact delete/edit/add/merge/import functionality from the contact maintenance page must be [save]ed to make the changes permanent. * bugfix; ContactsLoadFile() do not munge (upper-case or otherwise fiddle with) non-personal (i.e. site-specific) contact file name. * bugfix; HtmlSkipTagTo() used when sanitising HTML did not allow for single or double quotation marks outside of markup tags. ************ * v1.1.1 * ************ * Configuration directive [smtp-server-host] now allows a port number to be specified with the SMTP server host domain name (i.e. "the.host.name:25"). * Anchors created from Web URLS presented on the message read page are now split into two halves. The left side opens the link in the same window (target="_top") and the right in a child window (target="_blank"). * Do not infinitely increase the number of 'RE:' or 'FW:' (and any language-specific equivalents) in subject lines generated by the compose page. Leave at one, single leading instance of each. * Optimise search activities (in particular) at CallMailMessageHeader() by completely replacing mail$message_get() with mail$message_info() and adding mail$message_get() to CallMailMessageGet() for non-external mail messages only. This change was suggested by Dave Jones after investigations demonstrated a reduction to 35% of original search durations by eliminating an RMS file open implicit in mail$message_get() with external message files. My own testing has shown this delivers a reduction to between 65% and 45% of previous search times depending on the search parameters and the directory content. In other words; well worth the modification but YMMV. * Specialized user option [accessability-1] enables a heavy underscore beneath the detail of each message on the folder message listing page. This is intended to assist those with vision impairment to differentiate each message displayed against it's associated button. This option must be manually enabled by editing the user options file. * bugfix; AddressIsRfc() RFC2822 only allows the double quotation character (0x34) to quote, while AddressIsRfc() and MtaAddressExtract() allows backslash (0x92) to escape a single character. * bugfix; PublicMessageRequest() detect [search] button. * bugfix; ContactsLoadFile() set 'rdptr->ContactsTextPtr = NULL' after parsing LDIF content so that an empty LDIF file is not confused with a VMS mailing list. * bugfix; CallMailFileList() parsing of directory entry name length and entry flags (per Dave Jones) and use memmove() for shuffling inside the one buffer. ************ * v1.1.0 * ************ * Add configuration directive [private-request]. By default private access is recognised with a path (excludes the script component) beginning "/~". This can be overridden using the [private-request] configuration directive. It is intended to be used inside a conditional configuration test to indicate that this request is for private access to mail. It disables use of the "/~" sentinel. This 'conditional' approach was considered the more flexible. * Add configuration directive [update-last-login] with parameter INTERACTIVE or NON-INTERACTIVE. For each initial (GET) session the SYSUAF entry for the authenticated username has it's last-login (interactive or non-interactive) date/time updated. * Christoph Gartmann reports that Camino, Safari and Opera browsers on the Macintosh platform are suitable for soyMAIL (in that order and with some very minor inconsistencies). * bugfix; ComposeSelfAddress() miscalculation of size for calloc() under certain combinations of source address components. * bugfix; RequestPublic() parsing folder with GET. ************ * v1.0.0 * ************ * On the private and public message display (read) page precede each message part/attachment with an anchor/link to allow a right-click, browser 'save-target-as' dialog to be initiated, so allowing the part easily to be saved on the browser-local system. * Configuration directive [public-access] now supports a wildcard folder result (à la yahMAIL) allowing browsing of a public access folders. There are now three variations on public access. * Public access now supports searching. The configuration directive [search-control] may be used to disable and tailor this to suit requirements. * A child ([^]) compose window now has the additional button [send-close] available. After a successful message send the compose window is automatically closed. * Message [compose_send_close] added. * LangLoad() in conjunction with LANGDEF.H used to provide details on missing/extra entries in a language file when SOYMAIL$WATCH is defined. When messages are added/deleted or names changed the data in LANGDEF.H must now be changed (as well as in the language file itself). * soyMAIL messages support five languages at this initial release. de - German Karl Rohwedder en - English yours truly es - Spanish Victoriano Giralt fr - French Jean-Pierre Petit nl - Dutch Willem Grooters Many thanks to these contributors. * In folder listings MAIL and NEWMAIL no longer are shown unless they contain messages. Note that 'newmail', 'newMAIL', 'NeWmAiL' and 'NEWMAIL' are all separate folders (i.e. folder names are case-sensitive). * bugfix; OptionsSoyMail() propagation of personal you-got-mail audio when when changing language option. * bugfix; CerealDataOut() allow ambit 3x intermediate buffer space for data that actually increases in size during cerealising (serialising). For example; a succession of short, null-terminated strings (detected due to the mail file name structure). ************ * v0.4.3 * ************ * User option [wrap-text-at] has been superceded by [massage-read]. * User option [massage-read] is a more comprehensive plain-text message 'massager' providing 1) long line wrapping, 2) removal of extra line breaks, and 3) removes any PGP/GnuPG clear-text signature armor headers (RFC2440) leading and trailing a message. * Messages [message_wrap_on] and [message_wrap_off] changed to [message_massage_on] and [message_massage_off] respectively. Message [options_soy_wrap] changed to [options_soy_massage]. * Successfully tested against "Purveyor Encrypt Export/v1.2.2 OpenVMS". Only two minor code accomodations required. Installation of soyMAIL for this platform must be performed manually. Server environment configuration requires significant understanding of Purveyor. ************ * v0.4.2 * ************ * Configuration directive [SMTP-default-host] allows a host/domain name to be automatically appended to unqualified user parts of an address. With this set entering an address of 'daniel' would result in a send to 'daniel@the.host.name'. This of course disables a default send via VMS Mail. With this directive set VMS Mail can still be used by prepending a node name to the address (e.g. '0::DANIEL', 'DELTA::DANIEL', etc.) * Logout revisited (and can't guarantee it won't be the last)!! Configuration directive [logout-realm] enables the [logout] button and functionality for the VMS Apache and OSU server environments. This is combined with logout funtionality that actually *works* :-) across the three platforms. By default the logout button is 'greyed-out' (italicised) on non-WASD platforms and if pressed provides a status panel informational explaining it's not supported for that site. See the Install and Admin document for further detail. * Dutch language message file courtesy Willem Grooters (grootersnet.nl). * Refine HTML and HTML->plain-text processing to better handle some HTML character entities (HtmlNumericDeEntify() and HtmlCharacterDeEntify()). * AttachFile() ensure any file system path is stripped from the attachment name before saving (MSIE at least supplies the full path). * LangSame() modify comparison so that the message can contain HTML entities useful in some buttons (e.g. ). This will allow some longish, non-English language button labels to be folded with a newline (at least in Firefox, Mozilla and MSIE, Opera 8.5 doesn't seem to support this). * AddressListMassage() refine address reduction (yep - again!) * bugfix; InetMailParseHeader() handling non-MIME MIME-like headers. * bugfix; ContactsSave() to empty LDIF file. * bugfix; MessageBodyIdentify() when generating plain from HTML-only content first call MimeDecProcessPart() to potentially decode it. * bugfix; MessageBodyIdentify() default a non-MIME message message to 8-bit, plain-text. ************ * v0.4.1 * ************ * OOPS! Show-stopping initialization bug described below requires a much too hasty release with a quick bump in the version designation to differentiate it for any who downloaded it yesterday. My regrets to those did :-( * HtmlSanitise() suppress "background-image" in . * bugfix; ComposeSelfAddress() 'len' initialization. Rats! ************ * v0.4.0 * ************ * A NOTE TO LANGUAGE FILE AUTHORS. Messages can be used in all sorts of contexts, particularly inside string literal quotes - both single and double. It is therefore necessary to substitute the HTML entities ", ’, etc., for anything that might be misinterpreted as JavaScript code quotes (i.e. " (0x22) and ' (0x27)). * A NOTE TO VMS APACHE SITES. There is currently an issue with SWS 2.0 and 2.1 when POSTing request bodies greater than 64kB. This potentially affects the uploading of attachment files, personal newmail audio files, and possibly editing the text of extremely large messages. This issue is currently under investigation by the HP OpenVMS Secure Web Browser/Server Project Team. * French language message file courtesy Jean-Pierre Petit (esme.fr). * Ensure detected MIME parse problems are reported by MimeDecParseBody() and all callers of the function act appropriately to suspend MIME processing on that particular message. * Remove the message count from [<<<][9_messages]{range}[>>>] dialog range button. It was observed to be a bit confusing and contributing little of informational value. * Move input focus to the field most appropriate to the stage of message composition. Default to the message body text. * The username is no longer included when generating the form action URI unless the POSTMASTER facility is in use. The URI path shown when using soyMAIL now remains something like /cgi-bin/soymail/~ rather than /cgi-bin/soymail/~DANIEL This reduces the leakage of potentially sensitive information (often the VMS username) through the HTTP "Referer:.." header if links included in email messages are selected. The user of soyMAIL is still available in local access logs via the authenticated username field. * bugfix; Old habits die slowly - do not upper-case the username component when parsing it from the path in RequestPrivate() as this can interfere with VMS external authentication. * bugfix; The self address and the "From:" RFC822 header field should be identical. ComposeSelfAddress() is now used to generate this/these addresses. * bugfix; allow MIME related headers (e.g. "Content-type:") to precede the "MIME-version:" header. Cancel the MIME interpretation if the version header is not ultimately found in the message header. ************ * v0.3.9 * ************ * Corrected the Install and Admin document Apache authorization rule to be (should check my setup rather than just imagining what it might be!) * The message display page now has an additional message disposition button panel after longer messages (currently 32 lines). * Messages [option_soy_apply] and [option_soy_restore] abbreviated. * bugfix; CgiLibEnvironmentInit() for VMS Apache SWS V2.n and later (as with Apache CSWS V1.n) freopen("mrs=16384"). This caused fwrites() (RMS, C-RTL buffer?) larger than some magic number (65535, 32767?) to fail. ************ * v0.3.8 * ************ * Support the VMS Mail copy-send/forward/reply user options in the soyMAIL compose page by appropriately adding the [SELF] address to the CC field when [reply], [reply-all], [forward] or [compose] is used. That address can be cleared from the CC field (if no copy is required for this message) and is only added the once. * As 'convenience functionality' when the new mail message count gets out of step with the actual contents of the NEWMAIL folder (as it sometime is wont to do) then reset it. Implemented by CallMailGoToNewMail(). * Refine [logout] mechanism to improve overall behaviour and avoid a hole if MSIE [cancel]s. Still no guarantees of course because this is basically a kludge that tries to hoodwink the browser into thinking it's cached credentials are no longer valid. The main menu [logout] button now has associated JavaScript confirm explaining the logout basics (see [logout_confirm] below) and allowing an opportunity to cancel. * Language file message [logout_done] removed, [logout_confirm], [logout_not] and [message_html_to_plain] added. * Configuration directive [greeting] added to allow an initial site-specific message shown in the status panel. Overrides the language file [greeting] message. * Add rudimentary HTML to plain-text conversion. This allows HTML-only messages to be read and replied-to as plain text and for sites without an HTML plug-in editor to respond to HTML messages. * Make the message type default plain-text first, then HTML if available, rather than HTML never. * [close] button now has a JavaScript confirm for compose page. * bugfix; MainMenuRequest() FOLDER_LIST_CHANGE detect 't' rather than '1'. * bugfix; CallMailMessageDelete() close mail file to empty the WASTEBASKET before continuing with request. This prevents a 'phantom' WASTEBASKET folder appearing in the folder list. * bugfix; CallMailMessageCopyMove() adjust new message count when changing contents of NEWMAIL folder regardless of whether it's a copy or a move. ************ * v0.3.7 * ************ * Wish-list; main menu [compose][^] (open in new window) button. * The main menu [compose] button should provide a blank message regardless of where it's used from (including the message read page which it didn't prior to this change), with the exception of the message composition page itself when it should propagate any in-composition message. * For child windows (basically those opened with a [^] button) have the main menu provide a [close] button. This both indicates it is not the primary soyMAIL window and provides an obvious mechanism to close it when finished. * Provide a more informative message if CallMailGetUserProfile() reports MAIL$_NOSUCHUSER because of no profile entry (e.g. new account before mail). * bugfix; MimeDecProcessPart() sanity check on pointer not length (after all you can have empty content!) * bugfix; ContactsEdit() no sanity check on un-specified contact, just memset() zero it and continue as a 'new' entry. ************ * v0.3.6 * ************ * Wish-list; optional folder buttons on left-side of message listing. These can be enabled from the options page using the "Folder buttons" selector. * Support saving message as "message/rfc822" 'attachment'. This will allow entire messages to be attached and forwarded with other messages. * Refine MimeDecParseBody() to accomodate "message/rfc822" attachments and any such internal MIME parts. This issue was reported by Frank Weichert. * Modified [reply-to] option to [smtp-from] and in conjunction with [personal-name] have ComposePageRequest() generate a "From:" header more in line (though not identical) with TCPIP$SMTP_FROM behaviour. * Add explicit [reply-to] button and field to the composition page so that messages can individually have a reply-to set against them. * ComposeMime() add client traceability information to "Received:" header and "Message-ID:" fields. These now have the format Received: from () for @ by (SOYMAIL AXP-n.n.n) with HTTP; Message-ID: ...soymail@ * Change default (non-specified) MIME transfer encoding from 7bit to 8bit. This allows sloppy/non-compliant agents a bit more latitude with non-ASCII characters (e.g. umlautes). * Bring 'normal' edit window (and message transmission) line length back from 78 characters to 72 characters (in line with netiquete 'recommendations'). * bugfix; ComposeMime() default charset should be ISO-8859-1 not IS0-8859-1 * bugfix; AttachComposeList() attachment size calculation * bugfix; RequestParsePath() attachment names can contain '/' * bugfix; SearchKeyword() lower-case the keyword! ************ * v0.3.5 * ************ Initial public (well, info-WASD) BETA release.