" keyword in the From: header.
· Fixed: the dbe_add_row() function may incorrectly report that a database must be specified in the project (since 33.0).
Version 33.0 (8/20/2008)
· Balloon help has been totally revamped. The balloon help text for each control has been reviewed and improved.
· The entire help file has been reviewed and improved.
· Improved ease-of-use for HTML images, including:
· Added the "Image Locality" setting. Simply set it to "Internal", "External", or "Both", and Gammadyne Mailer will take care of everything. For old projects, this setting is initialized according to the "Auto-Insert cid:" and "Auto-Insert Content-Location" options.
· The "Auto-Insert cid:" and "Auto-Insert Content-Location" options have been removed. The new Image Locality setting determines if these features are used.
· Remote images are now automatically downloaded and embedded in the email (unless the Image Locality is "External").
· Numerous improvements to the "Troubleshoot HTML" tool.
· Added support for a relative path containing forward slashes. If any embedded image contains a relative path, the path is now automatically discarded.
· If no Embedded Files Directory is specified, it will default to the directory of the external HTML Body.
· Added support for HTML tags that specify the "background" attribute.
· The "Auto-Detect Embedded Images" option has been removed. There is no reason to turn this feature off.
· Improved support for load balancing to multiple SMTP servers, including:
· Added radio buttons to the "Sender" field that allow it to use the SMTP authenticated user.
· If the From: header is "", it will be replaced with the SMTP authenticated user.
· Each thread will now try to avoid SMTP servers that are throttling.
· Two SMTP servers with the same domain will no longer share the same throttle.
· When throttling with the "Recycle Connection" feature, the connection is now closed during the throttle pause period.
· Added the "Secure authentication" setting to the Incoming/Source branch. This changes prior behavior - previously secure authentication was always used, however this new setting is unchecked by default. Some servers cannot reject secure authentication gracefully.
· Added to the HTML editor support for unicode characters.
· Added to the "Check PTR Record" tool the ability to determine if the computer's external IP address is on Spamhaus's PBL. The PBL is a list of all IP addresses that are assigned dynamically or are behind a residential gateway. Direct Delivery does not work if the IP address is on this list.
· Added the "Ignore Auto-Responses" option to the Incoming/Criteria branch. We recommend checking this box for all projects that process incoming email.
· Added the incoming_origin() function, which returns a code for the location where the recipient was located in the incoming email. For example, this can be used to send auto-responses to only the recipients located in the From: header.
· Added support for a question mark wildcard in all log filenames. When the log is created, the question mark is replaced with the current date and time.
· Added the ability to paste plain text into the HTML editor (stripped of all text formatting). The hotkey is Ctrl+Shift+V.
· Added a checkbox to control the "Custom WHERE Clauses" field.
· Added to the "Sending previewed messages..." message the total number of emails remaining.
· Added the "Lookup Recipients" icon to the toolbar. Removed the "Verify Address" and "Verify All Addresses" icons because these tools are discouraged.
· Added the -HardBounces- variable for the Post-Incoming Script.
· Added various buttons to the bottom of the "Extract Text from HTML" window.
· Added the ability to control word-wrap in the Literal Email.
· The help file's Search feature will now highlight all occurrences of the keyword.
· Updated the SSL and DomainKeys modules to the latest version (security improvements and minor bug fixes).
· When using the "/v" command line switch, the complete list of email addresses is now displayed in a scrollable editbox.
· When using the "/r" command line switch, the removal log window now comes to the foreground.
· The "Process Literal Email" tool will now explain why the message is not valid MIME.
· The "Reset DNS Cache" tool will now report if the cache was already empty.
· All references to "Check Incoming Mail" have been changed to "Process Incoming Mail".
· The "Check Blacklisting" tool now accepts URL's and email addresses.
· Fixed: the "Manually Process Clause Table" checkbox was not always enabled/disabled correctly. This setting was renamed "Internally Process Clause Table".
· Fixed: some issues when a prompt() window is created while GM is minimized.
· Fixed: the Simple Send tool was not obeying the Character Set.
· Fixed: the Delete Clause button was only working if the Clause Table had focus.
· Fixed: the email_send() function was not including a "To:" header.
· Fixed: possible lock-up when spell checking in the HTML editor, and other problems.
· Fixed: rare crash in the HTML editor.
· Fixed: rare installer crash (since 32.1).
· Fixed: potential crash in DomainKeys related to multithreading.
Version 32.2 (5/19/2008)
· Added the ability to reverse the order of the database result set.
· Added the "RemovalMethod" pseudo-project label.
· Added support for Excel column names that have leading or trailing whitespace.
· Windows that originate from ODBC will now popup in front of Gammadyne Mailer instead of behind it.
· Revised the instructions for registering a SQL Server data source.
· Moved the Criteria branch below the Processing branch.
· The Preview Recipients tool will now ignore the Notify Operation Errors feature.
· Fixed: the Insert Column tool for the Custom WHERE Clause was not working properly.
· Fixed: when forwarding, project errors were not being properly recorded in the log (when using "Log Entire Forward Operation").
· Fixed: embedded images were not always previewing. Improved documentation on embedded images.
· Fixed: bug that caused all recall-comboboxes to accumulate duplicate entries in the drop down list if the text contained trailing whitespace.
· Fixed: bug that could cause only the first 256 characters of a database column to be fetched (if the database reports the size of the column to be 0).
· Fixed: the "Lookup Illegal Recipients" tool was not properly handling comma/semi-colon separated lists as documented.
· Fixed: changes made by the HTML editor's Attribute Editor tool can now be undone.
· Fixed: failure to login to IMAP4 servers that don't support CRAM-MD5 authentication.
· Fixed: selecting and copying text in the help file did not always work properly.
· Fixed: the "Execute custom SET statement" Removal Method was not working correctly during Incoming Operations.
· Fixed: the user is not allowed to make changes in the HTML editor until all images have downloaded. Doing so could cause all kinds of problems, including a crash.
· Fixed: if the operating system DLL named NTMARTA.DLL faults, it will no longer crash the installer (since 32.1).
· Fixed: crash related to SSL and multithreading. Anyone using SSL should definitely install this update.
Version 32.1 (3/17/2008)
· Added the "DomainKeys" pseudo-project label.
· Added a second optional parameter to the remove_recipients() function. It can contain one or more filepaths to plain-text mailing list files on which the removal is performed. Previously, this function would only operate on the mailing list specified in the project.
· Big improvement to quoted-printable decoding speed.
· The installer will now warn if it does not have admin rights. It will also attempt to loosen the security settings on the installation directory (to prevent problems with Vista).
· Fixed: rare crash after a continuous Incoming Operation completes.
· Fixed: rare crash when using MAPI.
· Fixed: possible "Unknown Function" error when using user-declared G-Merge functions.
· Fixed: possible hang when opening the Configuration Editor.
· Fixed: possible crash on Vista when enumerating DUN connections.
· Fixed: the GM window was initially minimized if no other System-G app had been installed.
· Fixed: the Vista minimize bug.
Version 32.0 (1/22/2008)
· Numerous user interface improvements. Please press Ctrl+Alt+Shift+F5 to reset SystemG, then reload your preferred skin.
· Added the "Process MAPI Email" option to the Incoming/Source branch. This allows GM to process messages in any email client that supports MAPI (such as Outlook and Lotus Notes).
· Added the "Write Email To MAPI Folder" option to the Send/Delivery branch. This allows GM to generate messages directly into an email client folder, such as Outlook's Outbox.
· Added the "Delivery" branch, where many settings from the Send branch have been moved. The Details branch has moved above the Domain Throttles branch.
· Added the "Indirect Delivery" radio button to the Delivery branch. The "Direct Delivery" and "Write Email To Files" options are now radio buttons.
· Added the incoming_save() G-Merge function. When processing incoming MAPI messages, this will save a message back to the MAPI folder.
· Added to the end of the Incoming Log statistics on the number of criteria keywords found. These stats are also recorded in the -CriteriaStats- variable which is available in the Post-Incoming Script.
· Added the db_used() G-Merge function, which returns TRUE if a database is being used.
· Added an Incoming Operation statistic on the number of message deletion successes and failures.
· Added a notice window while issuing the database query during a Send Operation.
· Added the "Editor Menu" button to the HTML editor toolbar.
· Added the convert_from_hex() and convert_to_hex() functions.
· Added to the Progress Window a statistic on the number of recipients rejected.
· Added various buttons to the bottom of the "Remove From Files" editbox.
· Whenever an image is inserted in the WYSIWYG HTML editor, if the Embedded Files Directory is blank, the image's directory is copied there. This helps ensure that the image will appear properly on the Preview Window.
· The incoming progress window will now display a running total of the number of messages processed and unprocessed.
· The Verify Address tool will now obey the "Override EHLO Domain" setting.
· The "Process Literal Email" feature will now report an error if the message is not valid MIME.
· The Simple Send window will now immediately reject an illegal From: header.
· Improved icons and icon rendering.
· Added the "Metal" skin.
· Updated the SSL module.
· All function calls to the SSL and DomainKeys modules are now made inside an exception trap so that these modules cannot crash Gammadyne Mailer.
· If a mail-sending worker thread crashes, Gammadyne Mailer can now gracefully recover from it.
· Noticeable performance improvement when using the asterisk wildcard in the log filepath when there are many log files.
· The "Add Recipients" window will now remember its position and size.
· Fixed: when specifying the SMTP server in a pseudo-project, the global SMTP settings were being used as defaults for unspecified fields. Now, when the SMTPServer field is encountered, all pre-existing information about the SMTP servers is discarded.
· Fixed: the SQL Canonical Mode was not importing correctly from old projects.
· Fixed: Bounce-Back Wizard was not always setting the "Processing Mode" to "Remove".
· Fixed: quoted-printable encoding could sometimes allow a line to exceed 76 characters. Some spam filters may penalize messages with this mistake.
· Fixed: the Delayed Retry feature should have been ignored for indirect delivery.
Version 31.0 (8/23/2007)
· Added support for Yahoo! DomainKeys - a system for verifying a sender's identity and message integrity. Please refer to the Send/Details branch.
· Added the "Decanonicalize G-Merge Input" setting to the HTML Body/Options branch, which is useful when editing HTML that contains G-Merge. The "Canonicalize Data" setting was renamed "Canonicalize G-Merge Output".
· Added support for SMTP servers that employ a new form of the "Greeting Delay" method of spam prevention.
· Added support for Spell Checking the HTML body while in WYSIWYG editing mode.
· Added to the "Change Email Address" tool the ability to reduce the old email address to simple form.
· Added the "Use Global INI File" option to the context menu of the "Write Email To Directory" checkbox. If checked, GMFW.INI is stored in Gammadyne Mailer's main directory instead of the output directory.
· Added the "Insert Column" and "View Results" buttons to the bottom of the Custom SELECT Statement field.
· Added Browse, Copy, and Edit buttons to the bottom of the Recipient File, Exclusion File, and Process Local Email fields.
· Added the ini_get_date() G-Merge function.
· Added to the HTML editor the ability to delete rows and columns from a table. Shift+Space will now insert a non-breakable space. Also, the Enter and Shift+Enter keys are now reversed. The Enter key will insert a line break ( ). Shift+Enter will insert a new paragraph ().
· HTML Attribute Editor: fixed a problem where changing a pre-existing attribute could cause a duplicate attribute to be added to the HTML code. HTML Style Editor: styles are now grouped by category.
· When enumerating database table names, the list will no longer contain system or temporary tables. This fixes a problem with Excel table name enumeration, and eliminates a long pause with Oracle. Please note that we have observed Excel to experience problems unless the Cursor Type setting (Database/Setup branch) is set to "Static" or "Forward Only".
· The Simple Merge feature now decanonicalizes double quote marks into a single character.
· The Preview Recipients tool no longer executes the Send Batches.
· Improved tolerance of the Excel "Numeric Field Overflow" error.
· The "+" buttons on the Simple Send Window now support multiple selections.
· When "SQL Canonical Mode" is "Auto", column names are now canonicalized if they contain the dollar sign, but not for table names surrounded in accent marks (Excel style). Also, the "Never" mode now operates as documented. Also, changes to the SQL Canonical Mode will now take effect immediately, not the next time the database is opened.
· After performing a Preview Remove operation, the "Proceed With Removal" button will now appear when there are only duplicates and blanks found but no address matches.
· If an HTML body is present, the Preview Window will now display it by default instead of the text body.
· The convert_to_html() function no longer requires its parameter to be a string.
· Improved detection of soft bounces from IIS.
· Updated the SSL module.
· The File History is no longer converted to lower case.
· DomainKeys headers are now stripped from forwarded messages (because a forwarded message would always fail verification).
· Moved the "Literal" branch under the Incoming/Source branch.
· Fixed a problem with IMAP4 on MS Exchange Server. Because Exchange disconnects after failing to securely transmit the password, plain-text is now used if the text "Exchange Server" appears in the server greeting.
· Fixed some minor focus issues in the HTML editor. Fixed some issues with the "Undo" tool not working. Fixed a problem with inserting a table within a table. The "Undo" tool on the Raw tab can now undo all changes made on the Edit tab.
· Fixed bug: when a G-Merge syntax error in the HTML body occurs, the caret is now positioned at the location of the error.
· Fixed a problem that could prevent the successes and failures from being displayed on the Progress Window.
· Fixed a possible "Unrecognized database type" error.
· Fixed a problem decoding QP-encoded headers when the first character is encoded.
· Fixed potential high CPU usage when fetching DNS records.
Version 30.0 (5/2/2007)
· Added support for the IMAP4 protocol for receiving email. The Mail Accounts table now includes a column labeled "Protocol", allowing the user to choose between POP3 and IMAP4.
· Added support for session-level SSL (SMTP over SSL on port 465, POP3 over SSL on port 995, IMAP4 over SSL on port 993). This feature is auto-detected.
· Added support for POP3 CRAM-MD5 authentication. This security enhancement prevents the password from being stolen.
· Added a "Word Wrap" option to the Simple Send Window.
· Added the "Reply-To" option to the Simple Send Window.
· Added the "+" button to the To:, CC:, and BCC: headers in the Simple Send Window.
· Added various buttons to the bottom of the Attached Files List and Embedded Files List.
· Added the "/select" command line switch for overriding the Custom SELECT Statement.
· The entire help file has been reviewed. Numerous improvements and corrections. Added to the Auto-Responder Guide a section on preventing auto-responder loops.
· Numerous user interface/skin improvements. The "Default" skin has been redesigned to resemble the appearance of Windows XP.
· Numerous improvements to balloon help.
· The "Limit Message Size" setting is now compatible with the "Process Local Email" setting.
· In the WYSIWYG HTML editor, audio will now stop playing when the user clicks away from the "Preview" tab.
· The "Preview Final WHERE Clause" tool has been renamed "Display SELECT Statement". It now displays the entire SQL SELECT statement that is sent to the database.
· The "Troubleshoot HTML" tool will no longer report an error for a URL to a local file.
· Fixed a bug with Excel column name enumeration.
· Fixed a bug in UTF-8 decoding.
· Fixed a bug in the convert_to_url() function. It was not properly canonicalizing extended ASCII characters.
· Fixed a rare floating point divide by zero crash.
· Fixed an erroneous "Invalid Adapter IP" message when using a networking adapter with multiple IP addresses.
· Fixed a bug in the "View Result Set" tool that could cause a random time to appear in a NULL date/time field.
Version 29.0 (1/29/2007)
· Added support for SSL/TLS with the new "SMTP Encryption" setting on the Servers/SMTP branch, and the new "POP3 Encryption" setting on the Incoming/Source branch. Added the "EncryptSMTP" pseudo-project field.
· Added the "Network Adapter" settings to the Servers branch, allowing control over which adapter is used for all Internet communications. Added the "AdapterIndex" and "AdapterIP" pseudo-project fields. Added the adapter_ip_get() G-Merge function.
· Added to the http_fetch() function the ability to support https: URL's, which use SSL encryption.
· Added icons to the settings tree. The font size of the tree can now be adjusted.
· Added titles and descriptions to the top of all branches.
· Added buttons to the bottom of all multiline editboxes that support G-Merge.
· Added a movable splitter on the Clauses branch.
· All interface fonts are now antialiased by default. The setting to control this is located at: System-G Menu > Configuration Editor > Controls > Font > Antialias.
· Increased the maximum number of database columns from 256 to 2048.
· The Incoming/Explicit branch has been renamed "Literal".
· The HTML editor's Attribute Editor and Style Editor will now operate correctly when the user has clicked on an image.
· The F1 key will now work in the WYSIWYG HTML editor.
· Fixed a bug in parsing certain responses to the HELO/EHLO command.
· Fixed a bug that could remove the quote marks from the ALT attribute of an tag (only when specifying a local image).
· Fixed a bug that prevented the "DatabaseConnect" pseudo-project field from working.
Version 28.0 (10/10/2006)
· To make embedding images easier, tags can now contain a link to a local file. Everything before the filename will automatically be replaced with the "cid:" prefix, and the file will be embedded as if it was in the Embedded Files List. There is no checkbox for this feature because there is no reason to turn it off.
· Added the "Ignore hard bounce-backs" option to the Incoming/Criteria branch.
· Added the "/pop3" switch which allows the POP3 information to be overriden for an Incoming Operation.
· Added the "Load" button to the Simple Send Window.
· Added the "Character Set" option to the Simple Send Window.
· Added the "Paste" button to the Simple Send Window's Attachments table. This allows you to paste the clipboard as an attachment - useful for sending screenshots.
· Numerous improvements to the WYSIWYG HTML editor. Added context menu options for adding database columns, variables, and functions. Fixed the disappearing caret bug.
· Improved and added skins (please reload your current skin).
· New and improved icons.
· Numerous minor improvements to the Database Result Set Window.
· Added to the extract_zip() function support for Canadian zip codes.
· Changed the default Text Body Line Length from 75 to 65. Shorter lines are less likely to run afoul of the recipient's email client's own line wrapping.
· The "Send Copy of every Nth email" feature now supports multiple email addresses as documented.
· The db_add_row() function will no longer automatically set the Recipient Column if the function parameters are already specifying a value for this column.
· If the same HTML embedded file is specified more than once, instead of producing an error, the duplicate will be automatically ignored.
· When using the various "Test Send" tools, the CC: and BCC: headers are now ignored.
· Fixed the "Limit HTML Line Length" setting not working when the HTML Body contains no G-Merge.
· Fixed a problem with the Simple Send Window sending an HTML embedded image whose filename contains a space.
Version 27.0 (6/6/2006)
· Added the "Zip Attachments" setting to the Attachments branch.
· Added the "Execute custom SET statement" Removal Method.
· Added the "Censor Forwards" option to the Incoming/Processing branch. This will censor all profanity from forwarded emails.
· Added the str_censor() function, which will censor all profanity in a string.
· Added the db_get_max(), extract_week_of_month(), extract_week_of_year(), str_discard_ws(), str_find_member(), and str_find_ws() G-Merge functions.
· Added the "Log Entire Remove Operation" option to the Incoming branch.
· Added a number of predefined environment variables for the Send Batches.
· Added a number of additional fields for the "Use System Address Book" feature.
· Changed the "Bracket All Columns" checkbox to the "SQL Canonical Mode" combobox. Added the "Auto" mode where column/table names are bracketed if they match an SQL reserved word.
· Simple Merge files are now decoded according to modern CSV convention. Quote marks are now expected to be doubled-up instead of being preceded by a backslash. It may be necessary to update your Simple Merge files. This fixes an incompatibility with files exported from newer versions of Access and Excel.
· When storing a string to a database column, the string is now truncated to the column size in order to avoid an overflow error. This specifically eliminates SQL Server error 1406.
· Fixed an incorrect message index reported on the Progress Window.
· Fixed a problem when processing email files on the hard drive. A repeated Incoming Operation was not recognizing the addition of new files.
· Fixed the Check Blacklisting tool. All domains would appear blacklisted if the "Use OS for DNS" box was checked.
Version 26.1 (3/6/2006)
· Added the get_recipient_list() G-Merge function.
· Added the ability to perform offline product activation.
· The Progress Window was not reporting a correct index when using the "Send Only To Range" feature.
· Fixed a bug with the dbe_add_row() function always returning NULL.
· Fixed a possible inability to connect to the Product Activation Server (when using a proxy server).
· Fixed a potential failure of the "Auto-Detect DNS" feature (on non-DHCP systems).
· Fixed a fatal error when declaring a function outside of the Pre-Send or Pre-Incoming Script.
Version 26.0 (2/24/2006)
· Added support for the new Gammadyne Product Activation System.
· Added support for user-defined G-Merge functions.
· Added the "Log Size Limit" setting to the Logging branch.
· Added to the "View Result Set" tool the ability to add new rows.
· Added the file_date_get(), mailbox_count(), extract_day_of_week(), str_left(), and str_right() functions.
· Added the db_get_date(), db_get_number(), and db_get_string() functions. These are variations of the db_get() function that guarantee a particular return type.
· Added to the email_send() function the ability to include attachments.
· Added the ability to force the use of the HELO command (instead of the EHLO command). Simply enter the text "" at the beginning of the "Override EHLO Domain" setting.
· Added a "Test" button for each SMTP and DNS server returned by the "Locate Mail Server" tool.
· Added the "Refresh" button at the bottom of the "Locate Mail Server" window.
· Added a number of predefined variables for the Pre-Send Script.
· Added to the db_execute() function the ability to store the first column of the first row of the result set in a variable. This is especially useful for obtaining the result of a stored procedure.
· Increased maximum number of threads from 256 to 1024.
· G-Merge functions will no longer produce an error when a NULL parameter is specified.
· The "Simple Send" and "Test SMTP Servers" tools will now obey the "Override EHLO Domain" setting.
· The Quoted-Printable encoding will now encode leading periods in order to avoid a problem with SMTP servers that do not obey period-stuffing (RFC-821 4.5.2).
· The "CC:" and "BCC:" headers now accept commas as email address separators. Please note that the behavior of Gammadyne Mailer has changed: any comma appearing outside of a quoted string will now be treated as a separator. For example, Doe, John is no longer a valid email address in the CC: and BCC: headers.
· The POP3 errors "Data fetch failure" and "Command send failure" will now report the specific socket error code.
· Fixed a problem with the "Restart operation in no-Preview mode" button. If a Recipient File is used, the mailing would go to each recipient twice.
· Fixed a logging glitch after clicking the "Proceed with removal" button.
· Fixed a problem with the "Log Connection Errors" setting being inappropriately disabled.
· Fixed a problem with an empty -Conversation- variable after attempting delayed retries.
· Fixed potential delay and truncation problems with the http_fetch() function.
· Fixed a problem with the "Ignore Soft Bounce-Backs" feature not logging the reason that the email is being ignored.
· Fixed SMTP Error 4541 when calling email_send() during an Incoming Operation.
· Fixed a crash when performing an Incoming Operation with a POP3 user name containing "%s".
· Please Note: Windows XP SP2 limits the number of simultaneous connection attempts to 10 (Event ID 4226 will appear in Event Viewer). This can have a very negative effect on Direct Delivery and Multithreading performance. There is no work-around.
Version 25.3 (9/14/2005)
· Added the "Count Recipients" option to the Logging branch.
· Added to the WYSIWYG HTML editor the ability to toggle the absolute/relative positioning status of an object. Right click on the object, then choose "Float" from the Alignment menu. Once in absolute positioning mode, you may drag the object to any location.
· Added the "Convert to lower case" and "Reduce to simple form" options to the "Change Email Address" tool.
· Added the "Insert Environment Variable" and "Run Batch" options to the context menu for the batches.
· Added the "Display summary" option to the "Add Recipients" tool.
· Added the [[-From-]] and [[-Sender-]] predefined variables for the Success Script and Failure Script.
· Added the "Undo" button to the HTML editor's toolbar.
· When aborting a Removal Operation during an Incoming Operation, the user is now prompted if they wish to abort the entire Incoming Operation.
· The find_first_file() and find_next_file() G-Merge functions will now return the complete filepath instead of just the filename, as documented.
· Numerous minor improvements.
Version 25.2 (7/14/2005)
· Added the ability to process incoming email located on the hard drive.
· Added the "Email Send Log To" feature to the Logging branch.
· Added a help file guide on configuring a project to process double opt-ins.
· Added the compare() G-Merge function. Although it performs the same job as the relational operators, it eliminates a problem with WYSIWYG HTML editors canonicalizing the "<" and ">" characters.
· The "Accounts" branch has been renamed "Source".
· The "Continuously Check Account" setting has been renamed "Repeat Incoming Operation".
· The HTML Editor's spell checker will now avoid canonicalized characters, such as " ", and everything between the tags.
· Fixed an incompatibility with databases that require the "memo" (large text) columns of a result set to be read in sequential order.
Version 25.1 (5/10/2005)
· Added the "(Auto)" option to the drop-down list for the HTML Character Set. If this option is selected, the character set will be automatically determined from the HTML body's meta tags.
· Added the ability to edit the Custom Headers on the Preview Window.
· Eliminated the need for GHELP.EXE. The main application executable will now handle displaying the help file. This reduces the size of the installer by about 700 KB.
· When using the "Forward to all recipients" Processing Mode and the "Members Only" option, the message will no longer be forwarded if there is no valid email address in the From: header.
· The WYSIWYG HTML editor will now keep lines under 500 characters, preventing the "Troubleshoot HTML" tool from reporting a problem.
· Fixed an incorrect elapsed time in the Incoming progress window. Also, clicking the "Abort" button will now prompt the user for confirmation.
Version 25.0 (4/11/2005)
· Added the "Notify Operation Errors" setting to the Logging branch. This allows errors that occur during a Send Operation or Incoming Operation to be emailed to an administrator.
· Added the "Log Recipient Data" setting to the Send/Logging branch.
· Added the switchr() G-Merge function. This operates just like the switch() function, except that a relational operator must be specified for each field.
· Added the "Collapsable" option to the Settings Tree's Tree Options menu.
· Added the "View" button to the Simple Send window's Attachments table.
· Added support for overriding the outgoing email's date. If a "Date:" header is specified in the Custom Headers, no Date: header will be automatically generated.
· Added to the db_get() function support for Oracle table names that contain a period.
· Added support for the MySQL's RAND() function in the "Order By" column.
· Improved the "Locate Mail Server" tool. The operation is now performed in a background thread that can be aborted. All data can be easily copied to the clipboard, including a full text report. All DNS servers and mail servers are now listed.
· The Send Progress Window will now remember its previous position on the screen.
· The Send Log will now report "local success" instead of just "success" when a Direct Delivery fails but the Retry Direct Delivery Failures Locally is successful.
· Rearranged the sub-branches of the Send branch to a more logical order. The Send Batches now share a single branch.
· The "Verify Email Address" tool now maintains a list of past entries.
· System-G windows will now stay hidden after the "Show Desktop" button is clicked. Fixed a problem with minimizing a System-G window by clicking on its taskbar button.
· Numerous minor improvements, especially interface improvements.
· Fixed the Post-Send Script's [[-EndDate-]] variable.
· Fixed a bug that could cause an invalid G-Merge variable to produce no error message.
· Fixed some problems with the "View result set" tool's handling of multiline text.
· Certain Direct Delivery errors will no longer prevent a local retry. For example, receiving a 554 error in response to the MAIL FROM command should be retried locally because this rejection can be due to sending from a dynamic IP address.
· Fixed a potential crash if an email address contained the "%s" character sequence.
Version 24.6 (2/16/2005)
· Added the email_send() G-Merge function, which will send a single email. This can be useful for informing an administrator when an operation has completed.
· Added the ability to send an email directly to Gammadyne Technical Support from the Send Feedback window (on the Help menu).
· Idle CPU utilization has largely been eliminated.
· The file_save() function will no longer cut the file off at the first 0 byte.
· Fixed a bug (since 24.5) that would cause the help file to open if the "P" key is pressed in the HTML Editor. Also fixed the F1 key.
· Fixed a problem (since 24.5) with servers that reject Delivery Status Notifications with the 555 error code.
Version 24.5 (2/1/2005)
· Added the "Close database between operations" setting to the Database/Setup branch.
· Added the [[-Conversation-]] pre-defined variable for the Success and Failure scripts. This variable contains the entire command-response conversation with the SMTP server.
· Added the incoming_is_disposition() function, which determines if an incoming email is a Delivery Status Notification.
· Added to the help file an explanation of how to remove Reading Confirmation Requests from list-server emails. Also added an example of how to ignore Delivery Status Notifications.
· Added to the help file a guide on resuming interrupted Send Operations.
· The "Test SMTP Server", "Test POP3 Server", and "Test DNS Server" tools now use a separate thread to test the server. This allows the window to react instantly to a click on the "Abort" button.
· When sending an email with Direct Delivery, and there is a BCC header or the "Send copy of every nth email" feature comes into play, the Success/Failure script will no longer run for the extra email (which is sent separately from the original email). Also, the "Append Successes" and "Append Failures" features will be ignored.
· Improved the "Check PTR Record" window.
· The members list for the "Members Only" feature is now reloaded in between repeated Incoming Operations. This is necessary so that new sign-ups are immediately recognized, even when another process is adding recipients to the mailing list.
· If an SMTP reply code above 503 is received in response to the RCPT command, retries are no longer attempted. These errors should not be reattempted by Direct Delivery because it angers certain mail servers.
· If a 553 or 554 SMTP reply code is received in response to the MAIL FROM command, retries are no longer attempted.
· Fixed a problem with hyperlinks sometimes being broken by the "Line Length" setting.
· Fixed a problem with the incoming_get_bounce() function cutting off the last character of the email address.
· Fixed a problem with the "Direct Delivery Retries" setting being ignored unless the "Retry Direct Delivery Failures Locally" option is checked.
· Fixed the "Retry Direct Delivery Failures Locally" feature, which was accidentally broken in version 23.0.
Version 24.4 (11/12/2004)
· Added the "Import from CSV" and "Export to CSV" options to the context menu for table controls.
· The Simple Send tool will now embed HTML images properly.
· Fixed a bug (from 24.3) that caused a crash when using the Simple Send tool.
Version 24.3 (10/20/2004)
· Added the "Write Email To Directory" option to the Send branch.
· Added the ini_increment() and ini_decrement() G-Merge functions.
· Added support for G-Merge in the filename of an Explicit Attachment.
· Added to the manual an example of how to use GMCOM.DLL from the C# language.
· Fixed a fault that would occur upon process termination when using GMCOM.DLL from a C# program.
· Fixed a couple of problems with Example.MMP.
· The "SMTP Timeout" setting now defaults to 600 seconds. This is necessary for SMTP servers that employ the "SMTP Delay" method of spam prevention. We strongly recommend that you change this setting in all of your projects.
· The [[disregard]] statement is now handled properly when used indirectly with the gmerge() or include() functions.
· Corrected the instructions for "List-Serving Example #1: Moderator-Only Posting".
· Numerous minor improvements.
Version 24.2 (9/9/2004)
· Added the "Check Blacklisting" tool.
· Added to the Send Log a list of all operation parameters.
· Added the ability to specify multiple domains on a single row of the Domain Throttles table. This is useful when multiple domains are actually using a single mail server.
· Added the "Abort Operation On Failure" option to the "Database/Setup" branch. If checked, the Send Operation will halt if there is an error storing the Successful Send Date.
· Added to the manual a guide on Auto-Forwarding.
· Added the "Import from project" option to the context menu for the Domain Throttles table.
· Button icons now have a transparent background.
· The Domain Throttle feature will now use a domain's MX record to determine if throttling is necessary. For example, if there is a throttle for "tiscali.com", then the recipient "foo@worldonline.co.uk" will be throttled because the mail server for "worldonline.co.uk" is "mk-cpfront-9.mail.uk.tiscali.com".
· In order to improve performance on large mailings, the "A" and "MX" DNS caches have been expanded from 500 to 5000 entries.
· If there is a "Priority:" header in the Custom Headers field, it will now be exempt from Header Character Set Encoding.
· The Simple Send tool will now report the status of the Send Operation instead of automatically displaying the log.
· Email addresses in the following format are no longer considered illegal:
foo@bar.com
· Fixed a weakness that could allow corrupt DNS data to hang a thread.
· Fixed a potential crash in the HTML Editor when changing the font style of a selection.
Version 24.1 (8/3/2004)
· Added the Send Script, which executes for each recipient.
· Added the "Log Entire 'Forward' Operation" option to the Incoming branch.
· Added the incoming_get_bounce(), file_find_first(), and file_find_next() functions.
· Added the "x" format code to the number_format() function for producing hexadecimal output.
· The Incoming Log will now report a correct database ID when using the "Update/Add to Database" Processing Mode.
· Fixed a bug that prevented the "Add To Database" and "Update/Add to Database" Processing Modes from acquiring the newly added row.
· Fixed some problems with the "Simple Send" tool's HTML Editor.
· Fixed a bug in the "Delayed Retry" feature that would cause the email to be lost if the domain could not be located.
· Fixed a bug in the "Delayed Retry" feature that could cause the operation to report that it would not finish for over 49 days.
Version 24.0 (7/19/2004)
· Added the WYSIWYG HTML Editor. Note: if you never click on the HTML Editor's "Edit" tab, then Gammadyne Mailer will operate exactly as it did previously.
· Added the "Use soft-bounce defaults" and "Edit soft-bounce defaults" options to the context menu for the Body Criteria.
· Added the "MIME" folder to the Preview Window.
· Added the str_find_last() and str_find_last_i() G-Merge functions.
· Added the time_zone_bias_minutes() and time_zone_bias_text() G-Merge functions.
· Added the "b" date format code, which represents the Time Zone Bias.
· Added to the "Locate Mail Server" tool a drop-down list of past entries.
· Added to the Incoming Log's summary the total number of recipients added or removed.
· Added statistics to the end of the Add Recipients log.
· Added a menu option to abort a Send/Incoming operation when right clicking on the taskbar button or tray icon.
· The name of the current project will now appear on the taskbar button, in the taskbar balloon help, and in the system tray balloon help.
· When converting a string to a date, the Time Zone Bias is now obeyed (if present).
· The SMTP Timeout now defaults to 120 seconds. The Immediate Retry setting now defaults to off. These changes should help prevent duplicate deliveries.
· GMCOM.DLL will now report more detailed information when the registration status cannot be determined.
· The Direct Delivery setting is now unchecked by default. Due to the common practices of greylisting and banning residential gateways, it is now recommended that all email be sent through a mail server located on a web server.
· Word-wrapping is now prevented from breaking https: hyperlinks.
· The db_acquire_row_id() function now accepts non-numeric identities.
· The "Test POP3 Servers" tool will now list the user name in the log.
· The add_recipients() function now returns the number of recipients that were successfully added, or -1 if an error occurred.
· An error is now reported if the Send Log file cannot be created.
· Minimized Send Operations will now obey the "Minimize to tray" option instead of always minimizing to the taskbar.
Version 23.0 Five Year Anniversary Edition (5/12/2004)
· Added the "Delayed Retry" feature to the Send branch. This feature is necessary to send email via Direct Delivery to SMTP servers that employ Greylisting. An explanation of Greylisting has been added to the help file's Glossary. Because of Greylisting, Direct Delivery is no longer recommended as superior to using a local SMTP server.
· Added support for non-numeric Identity Columns.
· Added the dbe_add_row() function, which adds a row to a table in an external database.
· Added the "Default date format" and "Default time format" settings to the Details branch.
· Added the "Include attachments" option to the context menu of the Body Keyword Criteria. If checked, body keywords are also allowed to appear in an attachment.
· Added the "Reduce to simple" option to the "Add Recipients" tool.
· Added the [[-Destination-]] predefined variable for the Success/Failure Scripts.
· Added the "/mx" command line switch, which reports the mail server for a specified domain.
· Added the fatal() G-Merge function, which can be used to halt an operation with a fatal error.
· Added to the http_fetch() function an optional second parameter that contains HTTP headers.
· Numerous improvements to the Preview Window.
· When performing a spell check on the HTML Body, all HTML tags are now ignored.
· Renamed the "Retry Failures" setting to "Immediate Retry". Moved the "Override EHLO Domain" and "Save project before sending" settings to the Details branch. Moved the "Display send summary" and "Delivery status notification" settings to the Logging branch.
· Multiple email addresses are now allowed in the Reply-To: header.
· The random_xxx() G-Merge functions now use a randomized seed.
· The Remove Recipients tool will now log database errors.
· Numerous minor improvements.
· Fixed a bug that could cause inadequate information to be reported when a database assignment error occurs.
· Fixed a problem that was observed with a particular POP3 server that was not sending responses in a single packet.
· Fixed a bug that would prevent the Pre-Incoming and Post-Incoming scripts from using predefined variables when there is no Incoming Script.
Version 22.2 (4/6/2004)
· Added support for the Gammadyne Spell Checking Module.
· Added the "Lookup Illegal Addresses" tool to the Database menu. This allows you to edit those database records containing an illegal email address (to correct typos or obvious mistakes).
· Added the log_open(), log_close(), and log_banner() G-Merge functions. These allow you to dynamically determine the filepath of the log file in the Pre-Send Script. It also allows you to close the log, then reopen it later, thereby eliminating undesired information.
· Added the convert_to_number2() function, which is a less restrictive version of the convert_to_number() function.
· Added the decode_header() G-Merge function.
· Added the "/x" command line switch, which performs a Removal Operation using the Removal List.
· Added to the syntax of "var" and "let" G-Merge statements the ability to specify a comma-separated list of assignments.
· Extended ASCII characters (128-255) are now permitted in the user name portion of an email address. For example, the email address fňó@bar.com is now considered legal. This is necessary for compatibility with some European mail servers.
· Various minor improvements to the Progress Window.
· Numerous minor improvements.
· Fixed a security flaw related to the copying of passwords.
· Fixed a fault that could occur when clicking on a character in the Character Map.
· Fixed a problem with input focus that could occur when adding the first row to a table.
· Fixed a recent bug in the help system that affected hyperlinks inside of tables.
Version 22.1.2 (2/13/2004)
· Fixed a problem with the progress window forcing itself to the foreground even when Gammadyne Mailer is instructed to start minimized with the "/m" switch.
Version 22.1 (2/9/2004)
· Added the "Lookup Recipient" tool to the Database menu and Welcome Wizard. This allows you to view and edit those database records that contain a substring.
· Added the sqlize_date(), mime_html_set(), and mime_text_set() G-Merge functions.
· Added the "Purchase/Register" option to the Welcome Wizard (shareware mode only).
· Updated to System-G version 2.2.
· Email addresses are now considered invalid if the top-level domain contains non-letters or more than 6 characters.
· During Incoming Operations, a "NOOP" command is now sent to the POP3 server every 10 seconds (if no other commands have been sent). This should prevent the POP3 server from dropping the connection, which can be a problem when performing a long List-Serving operation.
· Forwards will now obey the "Sender", "Direct Delivery", and "Override EHLO Domain" settings. If you have an Incoming project that performs forwards without Direct Delivery, make sure there is a valid email address in the "Sender:" field (on the Headers branch).
· The date_valid() and datetime_valid() functions can now accept non-date parameters without producing an error.
· Help file: tables will now copy to the clipboard in a better format. Non-breaking hyphens are converted to normal hyphens before copying, which is especially important when copying a script.
· Fixed a Welcome Wizard bug that could prevent projects from staying removed from the Recent Projects list.
· Fixed a bug that could possibly result in the cut-off of an incoming email.
· Numerous minor improvements.
Version 22.0 (12/2/2003)
· The entire help file has been reviewed from beginning to end. Countless additions, changes, and elaborations have been made.
· Added the "Fast Removal" feature to the Remove/Options branch. This can greatly speed up Remove Operations by placing the burden of finding recipients on the database.
· Added the ability to override each individual controls' font size.
· Added the "Ignore Soft Bounce-Backs" option to the Incoming/Criteria branch. Added the incoming_is_soft_bounce() G-Merge function. These features allow you to ignore "soft" bounce-backs (such as when the mailbox is full).
· Added a number of SNMP statistics to the bottom of the Send Log. Added the -SNMPStats- predefined variable for the Post-Send Script.
· Added the db_add_row_table() G-Merge function, which adds a row to a different database table than what is specified in the project.
· Added the db_get_query() and random_string() G-Merge functions.
· Added a number of predefined variables for the Post-Incoming Script, which contain various statistics about the Incoming Operation.
· Added the -BodyKeyword-, -HeaderKeyword-, and -SubjectKeyword- predefined variables for the Incoming Script. This allows you to determine which criteria keyword was found in the incoming email.
· Added the -RejectionCount- predefined variable for the Post-Send Script.
· Added the "/table" command line switch, which overrides the database table name.
· Added the option to turn off the Removal Operation confirmation prompt.
· Between repeated Incoming Operations, the progress window will now display various statistics.
· Updated to System-G version 2.1.
· Numerous improvements to balloon help.
· The "Add Recipients" tool will now remember the "Ignore Duplicates" setting.
· When the user clicks on the Preview Window's "Send Messages" button, and the Preview Limit has truncated the operation, the user will now be given the choice of starting the operation over in the "No Preview" Send Mode.
· The correct Content-Type header is now used for embedded images with the .png and .jpeg extensions.
· When performing header character set encoding, email addresses will no longer be encoded. Only text that is between email addresses will be encoded. This fixes a problem with certain Unix mail servers that are not compatible with encoded email addresses.
· Fixed a bug with the View Result Set tool's Delete Row feature. It will no longer break the detection of altered data.
· Numerous minor improvements.
Version 21.1 (9/12/2003)
· Added the build_email_address(), extract_date(), extract_time(), include(), mime_get_header(), mime_get_html_body(), mime_get_text_body(), time_build(), time_compare(), and time_valid() G-Merge functions.
· Added the "Save to file" button to the Simple Send window.
· Added the "Check Now" button to the progress window that is displayed when waiting for the next Incoming operation to start.
· Added the "HTML Character Set" setting to the HTML/Options branch. This works around a false-positive bug in the Spam Assassin software.
· Added the [[-MessageID-]] predefined variable. It contains the "Message-ID:" header of the outgoing or incoming email.
· Added text drag & drop support to all editboxes.
· Added drag & drop support to the Simple Send Window's attachment table.
· All drag & drop operations now provide feedback via the mouse cursor as to whether or not the control under the cursor will accept a drag & drop.
· When performing a drag & drop, "Tree" and "Drawer" controls will now automatically switch to the branch/folder that is under the mouse cursor.
· Improved the appearance of the Welcome Wizard.
· Numerous improvements to the help file's section on G-Merge Functions.
· When creating an email's MIME, a carriage return is no longer automatically appended to each section's body.
· Gammadyne Mailer will now read the response from the "QUIT" POP3 command. Previously, this was not done because the response was not relevant. However, when using the "Limit number of messages processed" and a short "Continuously check account" time interval, some mail servers could refuse connections for a short time because they wait for the "QUIT" response to be received.
· Fixed a problem with losing the acquired database row after calling the incoming_autorespond() G-Merge function
· Fixed the missing "Add" button at the bottom of the Explicit Attachments list.
· Fixed a potential hang when using certain skins under Windows 95.
· Fixed a fatal error that could occur when decoding UTF-7 that ends in the plus sign (+) (although this is illegal syntax).
Version 21.0 (7/14/2003)
· Added the date_day_of_year(), date_build(), datetime_build(), file_copy_m(), file_delete_m(), file_move_m(), mime_html_append(), mime_html_prepend(), mime_text_append(), mime_text_prepend(), and mime_delete_header() G-Merge functions.
· Added to the "Simple Send" tool the ability to send attachments.
· Added support for multiple Exclusion Files.
· Added the "WaitUntil" pseudo-project field.
· Added to the "View Result Set" tool the ability to delete rows.
· Added the "Log entire 'Auto-Respond' operation" option to the Incoming branch.
· Added the "Limit HTML Line Length" option to the HTML Body/Options branch.
· Added the "Insert line breaks" tool to the context menu for the HTML Body.
· Added to the "Verify All Addresses" tool support for lists of email addresses separated by semi-colons or commas.
· The example.mmp project can now be removed from the Welcome Wizard's list.
· The extract_simple() G-Merge function will now properly handle strings that contain carriage returns, ignoring everything thereafter.
· Speed improvement to MIME decoding and Base-64 decoding. Fixed a problem where MIME decoding might place an extra carriage return at the end of a section body.
· A box is no longer drawn around the branch's controls.
· A tick mark is again allowed in an email address user name. We now recognize that it is more important to be able to send to such email addresses than to be able to process improperly formatted bounce-backs.
· When Gammadyne Mailer is minimized, and an auto-response or forward is sent, the progress window will now be minimized as well. Previously, it would pop up on the screen during the send.
· When List-Serving with "Members Only" and "Auto-Respond" both checked, it is no longer necessary to check the "Process From:" box for the auto-reply rejection to be sent to non-members.
· GM.EXE is no longer compressed with ASProtect.
· Renamed the options on the Servers branch to emphasize that they are only needed for dial-up networking.
· Fixed a problem with encoding long lines of text to Quoted-Printable. The last line was not always being properly word-wrapped.
· Fixed a problem with the auto-responder sending emails to all members of the Recipient File when following a 'Forward to all' operation.
· Fixed a problem with the "Log entire 'Forward to all' operation" option causing the log to later become truncated if an auto-response is sent.
Version 20.5 (6/3/2003)
· Added the "View result set" tool to the Database menu. This useful utility allows you to view and edit the database result set.
· Added the "Ignore attachment errors" option to the Attachments branch.
· Added the "Ignore embedded file errors" option to the Embedded Files branch.
· Added the date_add_days(), date_add_hours(), date_add_minutes(), date_add_seconds(), and date_add_years() G-Merge functions.
· Added the ability to delete entries from the drop down lists in the various Test Send features, as well as in the Simple Send window.
· Added the "Log entire 'Forward to all' operation" option to the Incoming branch.
· The "Test Send" tool will now ignore the "Send Copy of Every nth Email" setting.
· An error is now produced before the Send Operation starts if any recipient source file has dissimilar Simple-Merge columns.
· The MIME boundaries generated by Gammadyne Mailer are now identical to Outlook's. This works around a false-positive bug in the Spam Assassin software.
· The "Direct Delivery" option is now checked by default when creating a new project. We're convinced that direct delivery is better than local delivery.
· The "Forward to All" Processing Mode is now compatible with the "Identical" Send Mode.
· In the event of a Winsock send error, the operating system's error code is now logged, along with an English description of the error code.
· A tick mark is no longer allowed in an email address user name. This fixes a problem with bounce-backs that place the email address inside tick marks.
· Fixed a problem with minimizing Gammadyne Mailer to the tray while performing an operation. After the operation finished, the tray icon would disappear.
· Fixed an incompatibility when using a Recipient File specification with wildcards and the "Add to Recipient File" Processing Mode.
· Numerous improvements to the help file.
· Numerous minor improvements.
Version 20.4 (4/15/2003)
· Updated the "bounce strings.txt" file. Remember that you must delete this file before installing the new version since the installer never replaces this file.
· When performing a Remove Operation with an empty Removal List, the window that prompts for email addresses will now allow you to enter nothing. This is necessary when removing illegal, duplicate, or blank addresses.
· Fixed an inappropriate "Function expects 1 parameter" error in the db_add_row() function.
Version 20.3 (4/10/2003)
· Added the "Send Copy of Every nth Email" feature to the Send/Logging branch. This allows you to monitor a domain to make sure that it is not cutting off your deliveries.
· Added the "Process One After Keyword" and "Process One Before Keyword" options to the "Addresses in Body" setting.
· Added the "Generate Message-ID" option on the Headers branch.
· Added the "Process Priority", "Build Thread Priority", and "Send Thread Priority" settings to the new "Send/Details" branch.
· Added the "Close summary after 30 seconds" option to the Incoming branch.
· Added the add_recipients() G-Merge function.
· Added the latch_until() and latch_until_i() G-Merge functions. Unlike other latch functions, these allow you to specify an additional substring that terminates the latching.
· Added the str_discard_prefix(), str_discard_prefix_i(), str_discard_suffix(), and str_discard_suffix_i() G-Merge functions.
· Added the "Preview HTML" option to the context menu for the HTML Body.
· Added the Auto-Complete feature to Recall Comboboxes.
· Added support for pseudo-project fields being commented out with a semi-colon.
· If the user starts a Removal or Removal Preview operation, and the Removal List is empty, they will now be prompted to enter the email addresses.
· The Send Log will now list the project name.
· Single character domain names (e.g. "k.ro") are now considered valid.
· Fixed a bug in the HideSendBatch1 and HideSendBatch2 pseudo-project fields.
· Fixed an incompatibility with Astonshell.com's AltDesk software.
· Numerous minor improvements.
Version 20.2 (3/6/2003)
· Added to the db_add_row() function the ability to populate any number of columns in the new row, preventing the need to follow-up with "let" statements. This new ability works around db_add_row()'s restrictions on the Identity Column.
· Added the "Log connection errors" setting to the Incoming branch.
· Added the report_variables() G-Merge function, which is useful when debugging a script.
· Added the get_recipient_filename() G-Merge function, which can be used to customize emails based on the mailing list that contains the recipient.
· Added the get_attachment_header() and is_attachment_inline() G-Merge functions.
· Added the blowfish_encrypt() and blowfish_decrypt() G-Merge functions.
· Added the load_file_w() and load_mem_w() functions to GMCOM.DLL - they accept 16-bit Unicode strings.
· Added the "Halt on error in Success/Failure Script" options.
· The help system now allows text to be selected by character, not just by line.
· When processing compound email addresses in an Incoming email's headers, the recipient's name is no longer required to be inside quotes.
· The Pause/Break key can now be used to pause a Send Operation.
· The gmcom.exe and gmcom2.exe programs will now allow their output to be redirected to a file with the > operator.
· Improved appearance of toolbar icons.
· The date format "31/Dec/2003" is now accepted.
· The get_attachment() function (and its sisters) will now ignore empty attachments that have no filename. Incoming Script Example #9 now demonstrates how to display all of the attachments in an incoming email (for the purpose of debugging a script).
· The "Change Email Address" tool will now operate on both the Recipient File and Recipient List if both are specified. Numerous other improvements have been made as well.
· Fixed a problem with the "DNS IP Addresses" setting only remembering the first line.
· Fixed a problem with the "Issue SQL Command" tool only remembering the first line of the previous command.
Version 20.1 (12/27/2002)
· A "Message-ID:" header is now included in all outgoing emails. This will improve delivery success rates to AOL.COM. Special thanks to Chris Birk for discovering this trick. AOL does not make this information public.
· Added the "Cursor Type" setting to the Database/Setup branch. The change in version 20.0 to Forward Only cursors caused a problem with some databases. The default for this setting now matches the old behavior.
· Added the file_contains() and file_contains_i() G-Merge functions.
· Old DNS settings left in the registry will now be ignored by the "Auto-Detect DNS Settings" feature.
Version 20.0 (12/20/2002)
· Added the gmcom.dll library, which encapsulates the Gammadyne Mailer email sending engine in a COM object. This allows third-party programs to use the engine.
· Added the gmcom.exe program, which performs a pseudo-project send operation except with no user interface at all. This is useful in web server environments where only console applications can be executed.
· Added support to System-G for interface "skins". We strongly recommend that you try some of the new skins on the "Skins" submenu of the "System-G" menu.
· Added support to the Direct Delivery feature for CC: and BCC: headers. However, please note that a separate email must be sent for each address in one of these headers.
· Added the Pre-Incoming and Post-Incoming scripts.
· Added the ability to run the Success/Failure script after auto-responding, forwarding, and list-serving. The Success and Failure Scripts have been moved to their own branch under the Send branch.
· Added the "Pulse" feature to the Send branch (an alternate method of throttling).
· Added the "Process Attachments" option to the Incoming/Processing branch. This allows you to process all email addresses found in an incoming email's attachments.
· Added a wizard for setting up auto-responders. Added to the help file a guide on auto-responding.
· Added the incoming_forward_to_all() G-Merge function which performs the exact same operation as the "Forward to all recipients" Processing Mode.
· Added the latch_attachment() G-Merge function, which allows you to perform a latch operation on an incoming email's attachments.
· Added the sqlize() G-Merge function, which makes it easier to insert a string literal into an SQL statement.
· Added the [[-OperationType-]] predefined variable, which a script can use to determine if this is a send operation, auto-response, forward, or forward-to-all.
· Added to the convert_to_date() G-Merge function an optional second parameter that determines if the day precedes the month (for European date formats).
· Added the "Remove From Files" option to the Remove/Locations branch.
· Added some new strings to the "bounce strings.txt" file. Remember that you must delete this file before installing the new version since the installer never replaces this file.
· Added support to "let" statements for the += and -= operators.
· Added more menu icons. Reduced the aliasing on certain toolbar icons to make them more legible.
· System-G settings are now stored in a file instead of the registry to eliminate certain security issues.
· When list-serving, the "Custom WHERE Clause" can now contain G-Merge statements.
· When using the "Insert Function" tool, if a function has been selected, clicking the "Help" button will now open the help file at the exact spot where the function is described.
· The "Custom WHERE Clause" will now discard the "WHERE" keyword instead of producing an error.
· The "Forward As Raw MIME" option is now unchecked by default. Please note that this is contrary to backward compatibility with projects saved by versions prior to 16.5.3.
· When performing a mailing, the "Abort" button will now respond immediately when a thread is waiting for a DNS query.
· The [[-Message-]] G-Merge variable can now be modified in the Incoming Script in order to change the message that is forwarded by the "Forward to all recipients" Processing Mode.
· The "Log Removals" feature will now log illegal and duplicate addresses.
· Databases will now use the more conservative SQL_CURSOR_FORWARD_ONLY option instead of SQL_CURSOR_KEYSET_DRIVEN. This improves overall performance and eliminates a problem with Oracle queries that use joins.
· To prevent a potential fault, the operation log is now automatically truncated at 100 megabytes. Even so, you should turn off logging for large mailings.
· For all Explicit Attachments, all carriage returns and linefeeds will now be normalized to carriage return/linefeed pairs.
· The second parameter of the date_format() function can now be omitted - it will default to "d-M-yy h:ii:ssap".
· The second parameter of the number_format() function can now be omitted - it will default to ".0".
· When the file_append() G-Merge function fails, it will now include an error message in the log.
· The Bounce-Back Wizard will now generate a bounce-count script that properly takes the Removal Method into account.
· Fixed an erroneous "Identity Column required" error message when performing a Removal Operation on a Simple-Merge list.
· Fixed a rare problem with SMTP authentication.
Version 19.2 (9/17/2002)
· Added the following G-Merge functions: date_current(), field_exists(), random_switch(), round_down(), and round_up().
· Added the "Test DNS", "Test SMTP", and "Test POP3" toolbar icons.
· Added icons to the menus.
· Added new System-G options to control toolbars.
· Added to the "Extract Addresses" tool the ability to choose what characters are used to separate the extracted addresses.
· Added support for G-Merge in the "Reading Confirmation" header.
· Improved the appearance of toolbar icons.
· Removed the toolbar watermark.
· When printing the help file, the user will now need to use an operating system window to select the printer. This eliminates an incompatibility with certain printers.
· There is now a checkbox for the "Reading Confirmation" and "Expiration Date" fields.
· Fixed a minor line-breaking problem in the new help system.
· The Incoming Wizards will no longer automatically set the "Limit Number Of Messages Processed" feature since this could cause an endless loop if the "Delete Messages" option is not set to "Always". You should check your Incoming projects to make sure this dangerous combination of settings is not being used. The problem is when Limit Number Of Messages Processed is set to n, and none of the first n messages are deleted, causing these same messages to be processed over and over.
Version 19.1 (8/27/2002)
· Added a new Help file system. This system has the following advantages over the old Windows Help System:
- The entire help file can be printed at once, instead of by topic only.
- When printed, the page number that a hyperlink is pointing to will be printed.
- Unprecedented control over how the document is printed, including base font size and margins.
- Hyperlinks to web pages and email addresses are now supported.
- The keyword search supports full search expressions, such as:
"mail server" and (smtp or pop3) and -dns
· Added the "Log Headers" and "Log Body" options to the Incoming branch.
· Added the file_save_temp(), mime_change_header(), and mime_strip_attachments() G-Merge functions.
· Added to the number_format() function the ability to convert a number to several special formats, such as words and roman numerals.
· Added the ability to deal with non-compliant databases that prepend the table name to a result set's list of column names.
· Added to the Help file a section on various AOL topics.
· Numerous improvements to the Help file.
· When the "Prevent Duplicates" feature excludes a recipient, the Incoming Script will no longer run and no Auto-Response will be sent.
· All HTML emails sent to AOL will now use the "Content-Type: text/x-aol" header instead of "Content-Type: text/plain". This will improve the appearance of HTML emails in old versions of AOL.
· Renamed the "Additional Headers" branch to "Custom Headers".
· The registration number is now held in a file named "gm-reg.ini" instead of the registry. Gammadyne Mailer will no longer refuse to run if it cannot access the registry.
· The prompt() function will no longer treat the backslash as an escape character (for text controls).
· Fixed an incorrect error reported when opening the Simple-Merge column's drop down list when there are multiple recipient files.
· Fixed a bug with Smart Comboboxes (editboxes that have a drop down list of past inputs). Upon reloading a project, if the drop down list contained the same text as the project but with different case, it would alter the case of the project's field.
Version 19.0 (5/15/2002)
· Added the "Domain Throttles" branch. This feature allows you to limit the speed at which email is sent to certain domains, such as AOL.com.
· Added the "Limit message size" setting to the Incoming branch. It is recommended that you use this feature to prevent a very large email from interfering with an Incoming operation.
· Added the "Change To: Header", "Change From: Header", and "Change Reply-To: Header" settings to the Incoming/Processing branch. These settings change headers in a forwarded email, and are especially useful for list-serving.
· Added the "Strip attachments" option to the Incoming branch.
· Added the /script1 and /script2 command line switches, which allow you to insert G-Merge statements into the beginning or end of the Pre-Send Script.
· Added support for G-Merge in the Custom SELECT Statement.
· Added the following G-Merge functions: abs(), convert_from_utf7(), convert_from_utf8(), convert_to_string(), file_exists(), promptify(), round(), round_to(), sleep(), sqrt(), str_first_filled().
· Added to the "Issue SQL Command" tool the ability to copy a column of data from the Results Editor to the clipboard. Right click on the column heading and choose "Copy column to clipboard".
· Added the "Prompt before send" option to the Options menu. This can be used to suppress the "This is your last chance to stop the operation. Do you wish to proceed?" window.
· Added the [[-IsFirst-]] and [[-IsLast-]] predefined G-Merge variables for the Incoming Script. They allow you to determine if the first or last recipient is being processed.
· Added the [[-Account-]] predefined G-Merge variables for the Incoming Script. This allows the Incoming Script to take different actions based on which mailbox is being processed.
· Added Incoming Script Example #16, which demonstrates how to archive all incoming email.
· Added to the http_fetch() function support for UTF-8 encoding, which is used by some IIS web servers.
· Added the "Center window caption" System-G setting.
· Added the "Record project history" option to the Options menu.
· The SMTP Throttle no longer operates "per-thread". All threads will now work together to ensure that the SMTP throttle rate is obeyed.
· The Reply-To: header now permits URL-style parameters. However, according to our tests, the "subject" parameter was not able to control the subject of the reply.
· Numerous minor improvements.
· Fixed a wizard bug that would cause controls to be reset if the "Finish" button was clicked on the non-last window.
· Fixed a bug in the file_fetch() function not returning an empty string when the file could not be found.
Version 18.0 (4/17/2002)
· Added the ability to obtain extended information from the Address Book. See the "Use system address book" setting on the Recipients branch.
· Added to the db_acquire_row() function the ability to specify the datbase column name on which the search is to be performed. Previously, it could only be performed on the Recipient Column.
· Added the ability to use the db_acquire_row() function (and its cousins) in the Success and Failure Scripts.
· Added the "Update/Add to Database" Incoming Processing Mode. This works similarly to the "Add to Database" mode except that it first checks to see if the recipient is already in the database.
· Added the "Pause" button to the progress window. This allows you to temporarily pause a mailing.
· Numerous minor improvements to the program, the Help file, and System-G.
· An error is now reported if the "No recipient required" option is used with the "Add to database" Processing Mode.
· Assigning a string value to a numeric database column will no longer result in a SQL error. The string will be converted to a number automatically.
· Fixed a memory leak that could occur when the System Address Book was used. This could also cause an Illegal Operation error when Gammadyne Mailer terminated.
Version 17.0.5
· Added the change_address() G-Merge function, which can perform the same operation as the Change Email Address tool.
· Added Incoming Script Example #15, which shows how to process incoming email that specifies a change to a recipient's email address.
· Added the "Run Pseudo-Project" option to the File menu. Previously, pseudo-projects could only be run from the command line.
· Added the str_contains_lower_case() and str_contains_upper_case() G-Merge functions.
· When forwarding an incoming email, if the From: header is illegal, Gammadyne Mailer will now use a bogus email address if necessary to prevent a delivery error.
· Miscellaneous changes to the format of the Incoming Log.
Version 17.0.4
· Added the "Use Custom SELECT Statement" option to the Database branch.
· Added the "Help" option to the bottom of the Tools menu.
Version 17.0.3
· Increased the maximum number of threads from 64 to 256. However, unless you have a very fast computer and Internet connection, it is very unlikely that you will see any kind of performance improvement from using more than 64 threads. Windows 9x/ME users should never use more than 64 threads.
· The "Extract email addresses" tool now remembers all previous settings, not just the file list.
· Fixed a problem with the "Extract email addresses" tool when a file contains null bytes.
Version 17.0.1
· The "=" character is no longer allowed in email addresses to prevent a compatibility problem with the bizarre format of certain Exchange Server bounce-backs.
· Fixed a problem with the "Registry cannot be accessed" error message. It would instead display an error message with the text "Stack::pop". This error message will now offer to open regedit for you.
Version 17.0 (2/26/2002)
· Added Incoming Script Example #14, which shows how to process sign-ups, opt-outs, and bounce-backs in a single email account from a single project. This is now possible because of the new G-Merge functions that have been added.
· Added the remove_recipients() G-Merge function. This allows you to decide whether or not to perform a removal in the Incoming Script.
· Added the incoming_is_bounce() G-Merge function, which determines if an incoming email is a bounce-back.
· Added the "Convert email addresses case" tool.
· Added the str_contains_any() and str_contains_any_i() G-Merge functions. They allow you to determine if a string contains any substrings in a list.
· Added the str_line_break() G-Merge function, which will insert line breaks into a string.
· Added the extract_url_field() G-Merge function, which will extract an individual field that is encoded in a URL.
· Added the convert_html_to_text() G-Merge function. Several improvements were made to the HTML to Text conversion process.
· Added the [[abort_operation]] G-Merge statement, which will abort a mailing or incoming operation.
· Added numerous pre-defined variables for the Post-Send Script. These variables allow you to log various statistics concerning the mailing operation.
· Added to the Bounce-Back Wizard the ability to set up a "bounce count".
· Added to the Welcome Wizard the ability to delete project files and remove projects from the list. Right click on a project name for a list of options.
· Added the "Subject" field to the Preview Window. However, it is hidden by default. To display this field, right click on the Preview Window's caption and check the "Show Subject" box. The ability to hide the CC/BCC fields and the list of attachments has also been added.
· The entire help file has been reviewed and hundreds of improvements made.
· The "Repeat Send" feature will now display the number of times that the mailing has been sent when waiting to start the next mailing.
· Moved the "Removal Method" setting from the Database/Setup branch to the Remove/Options branch.
· Removed the Return-Path header field because it is not supported by many mail servers. You can still add this field on the Additional Headers branch.
· Fixed a bug in the convert_from_url() function not converting + characters to spaces.
Version 16.5.3 (private release, 2/15/2002)
· Added the "Domain Aliases" feature to the Remove/Options branch.
· Added the "Forward as raw MIME" option to the Incoming/Processing branch. This will default to checked for backward compatibility.
· Added the "SMTPServerNew" Pseudo-Project field. This allows a Pseudo-Project to specify more than one SMTP server. The "Export Pseudo-Project" tool will now export all entries in the SMTP Server Table if global settings are not being used.
· Added the "PreviewLimit" field for Pseudo-Projects.
· The "Append successes to file" and "Append failures to file" features will now flush all data to the disk to ensure that it cannot be lost in the event of a computer crash.
· The Identity Column field may now be left blank when performing a mailing. However, it is still required by any feature that modifies the database.
· When running a repetitive incoming operation, any database query results will now be released between operations. This allows design changes to be made to the database even while Gammadyne Mailer is running.
Version 16.5.2
· Using the Direct Delivery feature with a CC: or BCC: field wil now produce an error since it usually will not work. When previewing a Direct Delivery operation, the CC: and BCC: fields will no longer be displayed since they cannot be used with Direct Delivery.
· Updated the "bounce strings.txt" file. This file will not be updated by the installer unless you manually delete it first. This is a safeguard in case you have made modifications to the file.
· Improved the "Auto-Detect DNS" feature to handle a particular NT configuration.
Version 16.5.1
· Added to the "Check For Update" feature the ability to automatically download and install the new version.
· The "Auto-Insert cid:", "Auto-Insert Content-Location", and "Auto-Detect Embedded Images" features can now handle tags that occupy more than one line.
Version 16.5 (1/15/2002)
· Added the "FAQ's" option to the Help menu.
· Added support to G-Merge for C++ style comments.
· The "Specify Header's Character Set" feature will now ignore headers that contain the "=?" character sequence. This allows you to manually override the encoding of a single header field.
· The http_fetch() G-Merge function will now ignore whitespace and quotes on both ends of the URL.
· The "Repeat Send" window will now display the time until the next operation begins.
Version 16.4.3
· Added the "Preview Limit" setting to the Send branch. If you increase this setting, don't blame us when you receive an "Out Of Memory" error.
· Added the incoming_autorespond() and incoming_forward() G-Merge functions, which allow you to send auto-responses and forwards from the Incoming Script. This is useful for conditionally determining when an autoresponse or forward should be sent based on the contents of the incoming email.
· Added support for multiple recipients in the database's Recipient Column. They must be separated by commas or semi-colons.
· Added to the "Single Send" tool the ability to enter data for a simulated database record.
· Added support to the Incoming feature for the "unicode-1-1-utf-7" character set.
· Added the [[-From-]] predefined variable for the Incoming Script. This is intended to be used with the new incoming_forward() function. You may assign a different value to this variable to control the "From:" header of the forwarded email.
· Headers specified on the "Additional Headers" branch will now be ignored if the field name contains spaces.
· In the interest of speed, Gammadyne Mailer will now stop processing recipients when the preview limit is reached. The only disadvantage is that disqualified recipients will not appear in the log.
· In the interest of speed, Gammadyne Mailer will now stop processing recipients when the index filter is reached. The only disadvantage is that disqualified recipients will not appear in the log.
· The Send Progress window will now display the project name in the caption.
· Fixed a bug (since 16.4) with loading System-G color schemes.
Version 16.4.2
· Fixed a problem with storing strings to the database that contain a 0 byte. Null bytes are now converted to spaces.
Version 16.4.1
· Fixed a problem extracting email addresses with a single character user name. This affects the "Extract email addresses" tool and Incoming operations.
Version 16.4 (12/17/2001)
· The send operation will now log the list of database columns in the result set.
· Fixed a problem (since 16.3) with an incorrect "Invalid variable or database column" error with SQL Server.
· Fixed a problem (since 16.3) with the "Invalid variable or database column" error message not listing all database columns.
Version 16.3 (12/13/2001)
· Added the "Process Before Keyword" and "Process After Keyword" options to the "Addresses In Body" setting.
· Added the "/dbuser" and "/dbpwd" command line switches, which allow you to override the database user name and password.
· Added the following G-Merge functions: date_days_between(), date_hours_between(), date_minutes_between(), date_months_between(), date_seconds_between(), date_weeks_between(), date_years_between().
· The escape key will now close the Welcome Wizard.
· The database SELECT statement no longer enumerates all column names. Instead, SELECT * is used, and then Gammadyne Mailer queries the database for the names of the columns in the result set. This will help with a problem where tables with many columns cause the SQL command buffer to overflow.
· Single character domain names are now permitted. Apparently they are allowed in Sweden.
· Fixed a serious multithreading bug that could cause process termination, an access violation, an "Out Of Memory" error, possibly even missing attachments or embedded files. The problem would occasionally, intermittently arise when sending email with attachments or embedded images using multiple threads. This embarassing bug has been present since the introduction of multithreading in version 14.0. Please accept our sincerest apologies if this bug has affected you.
· Fixed a problem (since 16.1) with escaping double brackets.
Version 16.2 (12/6/2001)
· Added the "Prevent duplicates" option to the Incoming/Processing branch, which will prevent email addresses from being added to a list when already present.
· The "/q" command-line switch can now be used to suppress the reporting of errors when the "/a" switch is used to add recipients to a project.
· Sub-domains are now allowed to contain the underscore character, even though this is not technically correct. Some SMTP servers will not permit anyone to login if the EHLO command contains a domain with an underscore.
· The Add Recipients tool will now display a log of its operation (except when run from the command line).
· The Email Account window in various wizards now has a separate entry for the mail server name and user name. This is necessary because for some email accounts, the user name is the entire email address.
· Fixed a problem (since 16.1) with the [[-Index-]] predefined variable being incorrect.
Version 16.1.2
· Performance improvement made to thread synchronization. Reduced the number of thread synchronizations.
· Fixed a problem with browsing the network in the File Picker.
· Fixed a problem with the Add Recipients tool reporting a mangled filename when adding to a Recipient File. Fixed a related problem with Recipient Filenames that contain a tick mark.
Version 16.1.1 (12/3/2001)
· Fixed a problem (since 16.1) with preview messages being built slower than normal. Efforts to reduce CPU utilization turned out to be a bit overzealous in certain respects.
Version 16.1 (12/3/2001)
· Added the "Append Rejections" option to the Send/Logging branch.
Version 16.0.7
· CPU utilization has been dramatically reduced. Overall performance has been improved.
· Added the "Removal Method" to the Bounce-Back and Opt-Out wizards.
· The "Auto-detect embedded images" feature will now detect images specified in the tag.
· The color complexity of the Welcome Wizard's bitmap has been greatly reduced.
Version 16.0.6
· The amount of time used by the database is now reported in the Send Log.
Version 16.0.5
· Implemented a work-around for a bizarre problem that could prevent saving new project files to a network mapped drive.
· Fixed a "No recipients specified" bug when handling database tables that contain an SQL_GUID column.
Version 16.0.3
· Added the "Auto-Insert Content-Location" option to the HTML Body/Options branch.
· Added the "Process Compound Addresses" option to the Incoming/Processing branch.
· Added the "Extract Compound Addresses" option to the Extract Email Addresses tool.
· The "Auto-Insert cid:" and "Auto-detect embedded images" features are now more tolerant of the format of the tags. The "src=" element is no longer required to appear first.
· Added the final database query to the send log. Also, the number of rows in the result set will be reported (if known).
· Fixed a bug in the "Insert function" feature when inserting one of the Incoming functions.
Version 16.0.1
· Added the "Direct Delivery Retries" setting to the Send branch. Gammadyne Mailer can now attempt a direct delivery to additional mail servers if the first delivery fails (when there are multiple MX records for the domain).
· Added support for Identity Columns that contain negative values.
· The "Locate Mail Server" tool will now report all MX records for the domain.
· Increased the maximum number of threads to 64, although this will only help with very fast Internet connections.
· Fixed a problem with using negative numeric literals in G-Merge.
· Fixed a problem with calling db_acquire_row() in the Pre-Send Script.
· Fixed a problem with reading negative integers from the database when db_acquire_row() is used.
· The "Simple Send" tool will now include a To: header field. Also, the SMTP Timeout will now correctly default to 30 if no project is open when the Simple Send tool is used.
· Numerous minor improvements.
Version 16.0 (11/20/2001)
· Added the "Welcome Wizard".
· Added the "Log Removals" feature to the Remove/Options branch.
· Added the ini_get_number() G-Merge function.
· Added the "Check PTR Record" tool to the Tools menu. This will tell you if Direct Delivery to certain domains, like AOL, is possible.
· Added support for comboboxes and scrollbars, as well as other improvements, to the prompt() G-Merge function.
· Added to the help file a description of using Task Scheduler to schedule operations.
· The ini_set() G-Merge function no longer cares what data type the fourth parameter is. The value that is stored in the INI file is always converted to a string.
· Changed the Wizards menu hotkey from W to Z.
· Email addresses are no longer considered invalid if a period is immediately before the @ sign.
· Fixed a problem with the "Forward Unprocessed Messages" feature when the "From:" header of the incoming email does not contain a valid email address. This bug will place the incoming operation in an endless loop if the "Continuously check account" option is specified.
· Fixed a problem with truncating incoming email header fields that contain Base-64 encoded text with an extra trailing null byte.
· Previously, to add a System-G setting, source code had to be written in about 25 different locations. New settings can now be added by writing just 2 lines of code. The bad news is that old .SGC and .GCS files are no longer compatible with the new scheme. The good news is that the new .SGS files that replace .SGC and .GCS files are plain text, not a proprietary binary format. This means that .SGS files can be easily edited using Notepad. To prove that these changes are worthwhile, the following settings have been added:
- Enhanced 3D borders
- Borderless checkboxes
- Borderless radio buttons
- Show balloon help on captions
- Minimize on double click
- Sizable window border thickness
- Static window border thickness
- Black window edge
Version 15.3.1
· Added support for G-Merge in the Custom WHERE Clause.
· The Incoming feature will no longer treat email header field names as case sensitive. Although not technically correct, this will allow the Incoming feature to handle malformed emails and should not pose any problems.
· The hotkey to open the Incoming Log has been changed from Shift+F6 to F10. Shift+F6 is used by System-G to shrink a window.
Version 15.3 (10/23/2001)
· Added the "Change Email Address" tool.
· Added the "Members Only" option to the Incoming/Processing branch. This option only applies to the "Forward to all recipients" Processing Mode. It will be prevent non-members from posting email to a discussion group.
· Added the "Extract Text From HTML" tool.
· Added the log(), str_pad(), and str_pad_r() G-Merge functions.
· Added the "Validate" button to the bottom of the Database Clause Table.
· Numerous improvements to Example.mmp.
· The "Preview Recipients" tool will now display a running count of the number of recipients that have been examined.
· The "Preview Recipients" tool will now write the recipient list to a file instead of keeping it in memory. This will improve performance for extremely large lists because it eliminates the need to constantly reallocate a block of memory on the heap.
· The HTML Body's "Canonicalize and Paste" feature will no longer canonicalize characters inside G-Merge statements.
· Date format strings can now contain a colon.
· Fixed a problem with performing a Removal Operation on a Simple-Merge file whose column names are enclosed in quotes.
Version 15.2.1
· When a line of Simple-Merge data contains fewer columns than other lines, an error will no longer be reported. An empty string will be used as the data.
· Fixed a problem with the Simple-Merge feature when a Recipient File contains a line longer than 256 characters. There is now no limit on the line length at all.
· Whitespace is now properly trimmed from both ends of quoted Simple-Merge data.
· Removed the ability to double click on a recipient's address in the Preview Window (causing a single message to be sent). This feature was too prone to accidents.
Version 15.2 (10/3/2001)
· Added the "Whole word criteria" option to the Incoming/Criteria branch.
· Added support for varchar database columns that are larger than 255 characters.
· On the Incoming/Criteria branch, "substrings" are now referred to as "keywords".
· The incoming log now reports which criteria keyword was found.
· The Database/Send Date branch has been removed. These settings have been moved to the Database/Setup branch.
· The -Now- predefined G-Merge variable can now be used in the Pre-Send Script.
· Fixed a problem saying EHLO to the mail server when the machine's name contains a space.
· Fixed a bug in the http_fetch() G-Merge function.
Version 15.1 (10/2/2001)
· Added the Wizards menu.
· Added the "Override EHLO Domain" setting to the Send branch. This setting can be ignored by most users.
· Added various improvements to the prompt() G-Merge function, including the new "LIST" control.
· Added the str_remove_line() G-Merge function.
· Added more information to the Remove Operation Log.
· Removed the Database/Columns branch. Its settings have been moved to the Database branch.
· The "Reduce Removals" and "Reduce Locations" options (on the Remove/Options branch) are now checked by default.
· The "DNS Port" setting is now appropriately ignored when the "Auto-Detect DNS Settings" option is checked.
· The "Test DNS Server" tool will now warn if the DNS Port is not 53, or if the DNS Timeout is less than 10 seconds.
· The incoming log now records a copy of the Remove log when the Incoming Processing Mode is set to "Remove".
· The "Preview Recipients" tool will now first display the number of qualified recipients. The user will now have the option of displaying the entire list.
· When the "Limit number of messages processed" feature takes effect, and there are more emails on the server waiting to be processed, Gammadyne Mailer will now reconnect immediately and process more messages without waiting for the next cycle.
· When a Recipient File cannot be opened, a verbose error will now be reported in the log.
· Fixed a bug in the prompt() G-Merge function - it was not storing the result of radio buttons correctly.
· Fixed a potential hang up when the Recipient File contains null bytes (ASCII code 0).
· Fixed a problem with the "Add to Recipient File" Incoming Processing Mode. Errors would be reported if the Recipient Filename contained a carriage return.
Version 15.0 (9/11/2001)
· Added the gmerge() G-Merge function, which allows you to process G-Merge statements inside a string value.
Version 14.1.11
· Added a Glossary to the help file.
· When the "Exclude HTML body from domains" feature eliminates an HTML Body, the "Build text body from HTML" feature will now work properly.
Version 14.1.10
· The "Test DNS Servers" tool now displays a progress window, and can be aborted.
Version 14.1.9
· Added the "Insert Line Breaks" option to the Attachments/Explicit branch.
· Added the "Test DNS Server(s) Before Sending" option to the Servers/DNS branch.
· Added to the prompt() G-Merge function support for radio buttons and dividers.
· Added the "Rename" button to the Attachments/Explicit branch.
· Added the "Bracket all columns" option to the Database/Setup branch. This is useful when the database contains a table or column name that is an SQL reserved word.
· The "Extract Email Addresses" tool has been rewritten. The "Eliminate duplicates" and "Convert to lower case" options have been added. The extracted addresses can now be transferred to the "Add Recipients" tool, which can be used to add the addresses to the database. It will also now properly ignore all invalid email addresses.
· Fixed a bug in the get_attachment() G-Merge function that would chop off attachments at the first 0 byte.
· Fixed a problem with the DNS timeout.
Version 14.1.8
· Added the following database Removal Methods: "Reset Boolean Column" and "Set Integer Column".
· Fixed a problem with SMTP servers that do not say goodbye at all.
Version 14.1.7
· Added the "tips" and "focus" Common Control Properties for the prompt() G-Merge function. "tips" allows you to create Balloon Help for a control. "focus" specifies that the control should initially have input focus.
· Added the "Ignore duplicates" option to the "Add Recipients" tool.
· Added the "/d" command line switch which will cause the "/a" tool to discard email addresses that are already present in the list. This is useful in preventing a recipient from being added to the mailing list twice.
· "Retry Direct Delivery Failures" is now unchecked by default.
· The "Add Recipients" tool will now ignore all invalid email addresses. This also includes the "/a" command line tool.
· Fixed a bug that caused the pseudo-project RecycleSocket field to not function correctly.
· Fixed a problem with the Incoming feature handling the bizarre format of some MSN bounce backs.
Version 14.1.6
· Added the "Process To:" option to the Incoming/Processing branch.
Version 14.1.5
· Added the incoming_get_header() G-Merge function, which returns the value of one of the incoming message's headers.
· G-Merge variables that are declared in the Incoming Script can now be used in the Text and HTML bodies when an Auto-Response is sent.
Version 14.1.4
· Added the "Use system address book" option to the Recipients branch.
· Added the "Extract from address book" buttons to the bottom of the "Add Recipients" window.
· Added the incoming_get_ip() G-Merge function, which returns the IP address of the incoming message's sender.
· Fixed a problem with the prompt() G-Merge function being used in the Incoming Script.
Version 14.1.3
· Added the "Forward to all recipients" Incoming Processing Mode. This allows Gammadyne Mailer to act as a List-Server. Although List-Serving was possible in earlier versions, this mode greatly simplifies the configuration.
· Added the "When Unprocessed" option to the "Delete Messages" setting.
· Added the incoming_delete() G-Merge function, which allows the Incoming Script to control whether or not an incoming email is deleted.
Version 14.1.2
· When making a database assignment, it is no longer required that the Identity Column be integral. This is significant for dBase, which only supports floating point numbers, not integers.
Version 14.1.1
· Added the "Begin With Recipient" feature to the Filtering branch, which makes it easier to resume an interrupted mailing.
· Added the "Messages per hour" statistic.
· In the Preview Window, you may double left click on a recipient to send their email to them (a shortcut to clicking on the Send button).
· When Gammadyne Mailer is minimized, the auto-response/forward progress window will no longer appear in the foreground.
Version 14.1 (8/7/2001)
· Added the "Auto-Detect DNS Settings" feature. If this feature fails to detect the operating system's DNS settings, you should uncheck this box so that your old settings are used again. Since this is a global setting, not a project setting, you only need to do it once.
· Added the enbox() G-Merge function, which can be used in the text body to enclose a string inside a box.
· Added the "Proceed With Removal" button to the "Preview Removal" report.
Version 14.0.6
· Added two new pre-defined variables for the Success and Failure Scripts: [[-Body-]] will contain the final personalized text body of the email, and [[-Subject-]] will contain the final personalized subject.
· Added three new pre-defined variables for the Pre-Send Script: [[-Body-]] will contain the raw text body of the email, [[-HTMLBody-]] will contain the raw HTML body, and [[-Subject-]] will contain the raw subject.
Version 14.0.5
· Recipient Files are now processed one address at a time instead of loading the entire file into memory. This permits Gammadyne Mailer to use much larger Recipient Files.
· The Simple-Merge feature now uses memory much more efficiently, allowing for much larger recipient lists.
· The Simple-Merge feature now supports multiple recipient files, and the explicit recipient list can be combined with files. Just make sure that each source has the exact same list of columns on the first line.
Version 14.0.4
· Added the following G-Merge functions: cs_leave(), file_copy(), file_move(), ini_get(), and ini_set(). The help file now has an index of functions, organized by groups. Each function can now also be found in the Table Of Contents under G-Merge.
Version 14.0.3
· Added the ability to use multiple DNS servers, which will improve the speed of multi-threaded direct delivery mailings.
· Added the option to allow System-G to resolve domain names into IP addresses instead of the operating system.
· A new method is now used to query the DNS server. This method uses UDP datagrams instead of TCP stream connections. The result is a 300% improvement in DNS speed because there is no overhead in establishing a connection. It also eliminates a multi-threading problem that limits the number of simultaneous connections to some DNS servers. A symptom of this problem is when only a handful of threads seem to make progress during a direct delivery mailing.
· All threads will now share a single DNS cache, which improves performance by eliminating repeated DNS lookups. The cache will hold up to 500 DNS records for up to 1 hour.
· A variety of new DNS statistics are now reported in the Send Log.
· The get_attachment() function will now properly return an empty string if there is no attachment, not a NULL value. Also, any section of the email that is not part of the body will now be treated as an attachment.
· The get_attachment_name() function will now return the filename specified in the Content-Disposition: field if it is not in the Content-Type: field.
Version 14.0.2
· Fixed a problem with SMTP authentication incorrectly reporting that no user name has been entered.
Version 14.0.1
· Fixed a database error caused by Identity Columns that contain non-standard characters, such as spaces.
Version 14.0 (7/17/2001)
· Added the "Add Recipients" tool.
· Added the "Return-Path" setting to the Headers branch.
· Added the "Exclude Users" feature to the Recipients/Filtering branch.
· Added the ability to forward processed incoming messages.
· Added the "Report Login Errors" option to the Incoming branch.
· Added the "ExplicitAttachment", "SendScript1", "SendScript2" pseudo-project fields.
· Added the get_attachment_name(), get_num_attachments(), and file_delete() G-Merge functions.
· Added a report of the total number of messages sent and failed to the progress window.
· The "Exclude Domains" and "Include Domains" features will now work with Incoming operations to exclude addresses.
· Registry problems, which will affect product registration, are now detected and reported when Gammadyne Mailer starts.
· When the "Auto-respond" and "Forward" Incoming features are aborted in progress, you will now be asked if you want to abort the entire Incoming Operation. These features will now also ignore SMTP POP3 Authentication settings, since Gammadyne Mailer is already connected to the POP3 server.
· A Boolean Simple-Merge column can now represent FALSE values with "0", "n", "no", or "false". Previously, it could only be represented by an empty value.
· A warning is reported when a file specification includes the same file more than once.
· The "Troubleshoot HTML" tool now reports when an embedded file is not used.
· The "Password" column of the Incoming Accounts table will now display asterisks instead of the actual password.
· The default state of the "Hide Send Batch" setting was undefined for pseudo-projects. It will now correctly default to FALSE.
· Fixed the Header Character Set's drop down list (this only occurred in the first beta).
· Fixed an Illegal Operation when the text body ends with a hyperlink. This was related to the new feature that prevents line breaks from being inserted inside hyperlinks.
· Fixed a bug that prevented the saving of changes to the SMTP POP3 Authentication's POP3 Port.
· Fixed a problem with using the "Test Send" feature and Direct Delivery. It was delivering to the original recipient's domain instead of the test recipient's domain.
· Fixed a bug that could potentially hang all threads. It was discovered that the compiler was generating 3 instructions where it should have generated just one - giving another thread the chance to interrupt and muck things up.
Version 14.0 Beta (6/29/2001)
· Added the ability to send multiple emails simultaneously. Please refer to the "Threads" setting on the Send branch.
· Added the Pre-Send and Post-Send Scripts.
· Added the prompt() G-Merge function, which allows you to display a window, complete with text, editboxes, checkboxes, and buttons.
· Added support for incoming email that is encoded in UTF-7.
· Added the is_aol(), latch_n(), and latch_ni() G-Merge functions.
· Added the ability to limit the number of times that the send operation is repeated.
· Added the get_attachment() G-Merge function, which allows the Incoming Script to extract data from an incoming message's attachments.
· Added "+" and "-" buttons to most editboxes that contain an integer setting.
· Gammadyne Mailer's executable has been renamed from mmail-m.exe to gm.exe. For backward compatibility, if the old mmail-m.exe file exists, the installer will overwrite it with the new version. This is done to prevent shortcuts from breaking. If you have no shortcuts, you can delete the mmail-m.exe and gm.bat files.
· Numerous improvements to the Help file.
· Drop down lists for the "Column" and "Value" columns of the Clause Table are now alphabetized.
· The "/a" command line switch can now add multiple email addresses to the database. It will also now handle multiple recipient files correctly, adding the recipient to the first file.
· To improve performance, the "Append Successes" and "Append Failures" features will keep their file open for the duration of the send operation.
· The "Line Length" feature on the Text Body/Format branch will no longer break off hyperlinks that exceed the Line Length since this causes the hyperlink to not function.
· The "Single-Send" tool will now explain that it does not use the database when an unknown variable/column is encountered in a G-Merge statement.
· The "Throttle" setting on the Send branch has been moved to two new columns in the SMTP Server Table. This is necessary for multithreading.
· Removed the redundant "Delay" feature. Use the Throttle feature instead.
· The "Auto-Respond" and "Forward unprocessed messages" features will now automatically disable SMTP POP3 Authentication, since the POP3 account is already open.
· An error is now reported if you attempt to use G-Merge with the Identical Send Mode.
· The "Simple Send" and "Forward unprocessed messages" features will no longer produce a G-Merge error if the email contains the "[[" character sequence.
· Fixed a G-Merge problem with string literals containing the "]]" character sequence.
· Fixed a problem with the "Remove" and "Verify All Addresses" features when multiple recipient files are specified.
Version 13.3 (5/25/2001)
· Added the "Attachments/Explicit" branch and the ability to specify the contents of personalized attachments.
· Added the "Incoming/Accounts" branch and removed the "Servers/POP3" branch. You may now check multiple POP3 accounts for incoming messages from a single project. The Global SMTP POP3 Authentication settings no longer use the settings from the POP3 branch, they are stored globally. When opening an old project, the old POP3 settings will be imported into the Accounts table and into the Global SMTP POP3 Authentication settings.
· Added the "No recipient required" option to the Incoming/Processing branch. This permits Gammadyne Mailer to process incoming email even when no recipient address can be determined.
· Added the ability to specify multiple recipient files.
· Added the char(), str_replace(), str_replace_i(), and str_substring() G-Merge functions.
· Added the db_get() G-Merge function, which allows you to pull database values from a table other than the one used for recipient data.
· Added to the Send Log the operation completion date/time.
· Added to the Send Log a statistic on the time spent using the DNS server.
· Added to the Help file's table of contents a number of links to different sections on G-Merge.
· Added the "/f" command line switch, which allows you to specify a file of email addresses to be used in conjunction with the "/a", "/e", "/o", and "/r" switches.
· You may now mix [[else]] and [[elseif]] G-Merge statements. An [[else]] statement will only evaluate to TRUE if all previous [[elseif]] statements were FALSE.
· G-Merge functions can now contain one or more spaces between the function name and the opening parenthesis.
· The "To:" header can now be used with the Identical Send Mode.
· The "/q" switch can now be used with the "/c" switch to prevent the Incoming operation from displaying certain errors (see the Help file).
· The Incoming Summary will now be displayed even when the operation is launched from the command line. To prevent this, uncheck the "Display incoming summary" option, or specify the new "/q" command line switch. The Incoming Summary will now automatically close after 30 seconds.
· You may now add the "/reg" switch to any command line. When present, and Gammadyne Mailer is in shareware mode, it will display the message "Gammadyne Mailer is not registered" and abort the operation. This is useful in informing you that Gammadyne Mailer has lost its registration status (typically due to part of the registry being deleted).
· G-Merge syntax errors now report the exact text of the invalid statement.
· Date conversions now permit these formats: "Fri, 14 Sep 1993" and "9.14.1993".
· G-Merge date literals can now accept the following formats: #15-Oct-99 23:06:03#, #Oct 15 1999 04:16:17 pm#, #October 15, 1999 4:16p#, and # October 15th, 99 12:03:14 a.m. #.
· Winsock error codes will now also report an English description of the error.
· When the Incoming Processing Mode is set to "Add to exclusion file" or "Add to exclusion list", the new exclusion will now take effect immediately. This prevents the same email address from being added to the exclusion file/list more than once.
· The "Simple Merge" feature now allows empty column data, such as "3,,17". Also, Simple-Merge now accepts strings that contain carriage returns (as long as the string is enclosed in quotes).
· The "Extract email addresses" tool will now strip the dash and period from the beginning and end of all extracted addresses, since an email address cannot begin or end with these characters.
· The "Forward unprocessed messages" feature will now set the "From:" field to the sender of the incoming message, as was stated in the help file. Previously, it was using the incoming email account for the "From:" field.
· The Expiration Date header will now work properly if only a date is specified (without a time).
· The restriction on the characters allowed in an email address's user name has been eased. Although uncommon, some mail systems do allow the following characters in a user name: !#$%^&*'?+=~
· The "Custom WHERE Clause" can now begin with the "OR" keyword.
· Fixed a G-Merge bug that would cause date expressions to contain a trailing space when converted to a string.
· Fixed a G-Merge bug in processing date literals that contain a time.
· Fixed a compatibility problem with Excel involving table names that contain the dollar sign. Excel cannot handle table names that are enclosed in brackets, even though this is part of the SQL standard. Please note that there is still no guarantee that Excel will work.
· Fixed a pseudo-project bug that would cause the "Auto-detect HTML images" feature to be used even when not specified.
· Sealed a minor memory leak.
Version 13.2 (3/30/2001)
· Added the Incoming/Explicit branch.
· Added to the auto-response feature the ability to use database columns in any field that accepts G-Merge.
· Added a "Help" context menu option to each branch of the tree.
· Added the latch_i() function, which is a case-insensitive version of latch().
· Added the sound_play(), sound_loop(), and sound_stop() G-Merge functions.
· Added the "/file" command line switch for use in conjunction with the "/c" switch. This allows you to process a file that contains an email instead of receiving email from a POP3 server.
· Added the "View incoming log" option to the Tools menu. You may now also press Shift+F6 to view the incoming log.
· The "Delete incoming messages" checkbox has been changed to a combobox in order to add the ability to delete all incoming messages, even if they do not meet the criteria. Despite this transformation, existing projects do not need to be modified as the old setting will be imported appropriately. However, there is a small change in the behavior of the "Forward unprocessed messages" feature. Previously, if this option was used and "Delete incoming messages" was checked, then the unprocessed message would be deleted. Now, however, an unprocessed message is only deleted when "Delete incoming messages" is set to "Always".
· Moved the Incoming Script to its own branch.
· During a continuous incoming operation, the IP address of the POP3 server will now be refreshed once per hour. Hence, it will be unnecessary to restart the operation in the event that the POP3 server changes addresses.
· The Identical Send Mode is now tolerant of a single recipient being rejected without interfering with the entire batch. The Success Script and Failure Script will run appropriately for each individual recipient. Likewise for the "Append Successes", "Append Failures", and "Store Successful Send Date" features.
· The Success Script and Failure Script now have a new predefined variable: [[-Message-]]. This contains the entire MIME body of the email.
· The CR, TRUE, FALSE, and NULL predefined variables can now be used in the Success Script and Failure Script when using the Identical Send Mode.
· The progress window was not always reporting the correct index value.
· Date conversions now permit date strings that include a day-of-week, such as "Sunday, September 14th, 1993".
· The "Insert predefined variable" tool for the Incoming Script will now list the special predefined variables for this script: -Message-, -Body-, -Subject-, and -CC-.
· Fixed a potential problem loading the global program data when multiple instances of Gammadyne Mailer are started at the same time.
· Fixed a problem in processing addresses in the bodies of incoming email when the Content-Type header was in a particular format.
· Fixed a problem with the Preview Recipients tool not reporting database errors.
· Fixed a problem with the progress window meter when sending very large messages. This was caused by a math overflow, and did not interfere with the sending operation, only the meter.
· Fixed a bug that prevented the "Build text body from HTML" feature from working. The conversion will also now ignore commented sections properly. Furthermore, the generated text body will now obey the "Line Length" setting on the Text Body/Format branch.
Version 13.1 (3/5/2001)
· Added the "Limit number of messages processed" option to the Incoming branch. This is useful when the incoming mailbox contains a large number of messages, but the connection cannot be maintained long enough to process all of them. This can be a real problem because messages are not deleted if the connection is lost.
· Added the switch() function.
· Added support for the GUID SQL data type (-11). These are treated as strings.
· Added the "DeleteFile" field for pseudo-projects. If present with a value of "1", the pseudo-project file will be deleted after it is used.
· Added to the Criteria branch a method for allowing incoming messages to be processed if any criteria is met, instead of always requiring that all criteria must be met.
· Improved Example.MMP
· During an incoming auto-response, the [[-Body-]] predefined variable can now be used outside of the Incoming Script.
· The Incoming Script can now use a "LET" statement to change the [[-Recipient-]] predefined variable in order to redirecct an auto-response to a different recipient.
· Fixed a bug in the "Check for update" feature.
· Fixed a bug in reading negative numeric values from the database.
· Fixed a bug in the Incoming operation when processing addresses that follow a body substring when there is a blank line between the two.
Version 13.0 (2/23/2001)
· Added the extract_domain(), http_fetch(), str_length(), str_find(), str_find_i(), and str_remove() functions to G-Merge.
· Added the /where command line switch, which allows you to override the Custom WHERE Clause.
· Added the /text and /html command line switches, which allow you to override the text body file and HTML body file.
· Added the /to command line switch, which allows you to override the recipient of the message.
· Added the /cc and /bcc command line switches, which allow you to override the "CC:" and "BCC:" header fields.
· Added the "DNS Timeout" setting to the DNS branch. A bad DNS server can no longer hang Gammadyne Mailer indefinitely.
· During a database mailing, the physical record index of the current recipient will be reported on the progress window.
· During an incoming auto-response, the [[-Subject-]] and [[-CC-]] predefined variables can now be used outside of the Incoming Script.
· Gammadyne Mailer will now try to report the total number of database records during a mailing. However, most databases do not support this.
· The first column of the result set displayed by the "SQL Command Sender" tool is now a sequential index. This lets you know how many records are in the result set.
· The "View Message Info" tool on the Preview Window will now properly display the database Identity for the recipient.
Version 13.0 Beta (2/13/2001)
· Added the "Automatically detect embedded images" option to the HTML Body/Options branch.
· Added the "Retry Failures" option to the Send branch.
· Added the "Remove Illegal Addresses" option the Remove/Options branch.
· Added the "Remove Duplicate Addresses" option the Remove/Options branch.
· Added the "Remove Blank Addresses" option the Remove/Options branch.
· Added the "Test send..." option to the Tools menu. This allows you to send all messages to a test email account, even when not using the Normal Send Mode.
· Added the "Forward Unprocessed Messages" setting to the Incoming/Processing branch.
· Added the "Process CC:" and "Process Reply-To:" options to the Incoming/Processing branch.
· Added a fourth option to the "SQL Date Format" setting for Oracle databases.
· Added the "Import addresses" tool to the Database menu.
· Added the "Display send summary" option to the Send branch, so that the send summary can be disabled.
· Added the [[-CC-]] predefined variable for the Incoming Script.
· Added the db_acquire_last_row(), db_add_row(), db_execute(), and is_address_valid() G-Merge functions.
· Added the "Overwrite Incoming Log" option to the Incoming branch.
· Added the "Save project before sending" option to the Send branch. For backward compatibility, this is checked by default.
· Added the "Exclude HTML Body For Domains" setting to the HTML Body/Options branch.
· Added the Alarm feature for failed incoming connections. This is useful when a computer is dedicated to continuously checking an account for incoming email.
· Added REM statements to G-Merge for writing comments in a script.
· Added the "Load removals from file" option to the context menu of the Removals List.
· Added the "HTML Body Encoding" setting to the HTML Body/Options branch.
· Added "Quoted-Printable" to the list of text body encodings on the Text Body/Format branch.
· Added support to the Incoming feature for messages encoded in Base-64 or Quoted-Printable.
· Added the "IdenticalBatchSize" field for pseudo-projects. Also, the help file did not contain a description of the "Identical" field.
· Added the "SMTP Timeout" setting to the SMTP branch.
· Added the "POP3 Timeout" setting to the POP3 branch.
· Added the "Test SMTP Server(s) Before Sending" option to the SMTP branch.
· Added the ability to control the Throttle period. It will default to 60 seconds for backward compatibility.
· The SQL Command Sender will now display results returned by a SELECT command.
· In G-Merge, you may now subtract two dates to get the number of days between them.
· When an Incoming message is processed, it is now deleted immediately instead of after all other messages are processed. This lowers the chance that an interrupted operation will result in an incoming email being processed twice.
· In the Incoming log, the final list of recipients is logged after each individual check, not after the operation stops. This saves memory on long, continuous operations.
· When processing the sender, the incoming feature can now handle From: header fields where the email address is on a separate line (pursuant to Section 3.4.2 of RFC-822).
· The "/c" and "/t" command line switches were not displaying the Gammadyne Mailer window properly.
· The result of an auto-response is now included in the Incoming log.
· The auto-responder now uses the same progress window as the Incoming operation.
· When an auto-response is aborted, the user is now given the option to continue the incoming operation.
· When performing a repeated send operation, Gammadyne Mailer will no longer use 100% CPU utilization when waiting to perform the next operation.
· The Reading Confirmation feature now uses the "Disposition-Notification-To" header pursuant to RFC-2298 instead of the "X-Confirm-Reading-To" header.
· The "View Message Info" option for the Preview Window will now list the "CC:", "BCC:", and "Reply-To:" header fields since these might be personalized.
· The "Export To Text File" option will now properly include the Clause Table in the WHERE clause.
· If the file_append(), file_fetch(), and file_save() G-Merge functions do not specify a complete drive and directory, they will now assume the file is relative to the directory where Gammadyne Mailer is installed.
· The HTML Body editbox will now properly remember the Fixed Pitch and Word Break settings.
· During a continuous incoming operation, if there is a failed POP3 login, the error message will only be displayed for 30 seconds at which point another login will be attempted. This prevents an isolated connection problem from halting the operation.
· The Remove feature will now warn if the Identity Column is not numeric, since this likely means that the removal will not work.
· The "Specify Content-Location" setting now contains a drop-down list of past inputs.
· The Remove feature will now report its progress during a database removal, which is useful when the database is huge. This also allows the user to abort the operation.
· The "Use clauses" option on the Remove/Options branch is now disabled unless you have chosen to remove recipients from the database.
· The "Text Body" editbox will now attempt to display itself in the chosen character set.
· Improved the HTML Troubleshooting tool.
· Improved detection of illegal email address syntax.
· Numerous improvements to the help file, including a description of how to automate the sending of Follow-Up emails. Also included is a step-by-step procedure for setting up Gammadyne Mailer to process Bounce-Backs, Opt-Outs, and Sign-Ups.
· If an HTML email does not contain a text body, the MIME format will no longer contain a multipart/alternative section with an empty text body.
· Previously, the Remove feature ignored the Simple-Merge feature. It will now extract the recipient from each line before checking for a match.
· When sending with the Identical Send Mode, the progress window will now report the indices of the recipients in the batch and the total number of recipients.
· Eliminated a weakness that could allow a POP3 server to hang Gammadyne Mailer indefinitely.
· The -FirstName- and -LastName- predefined variables now reflect the correct values in an email address that is last name first, such as "Public, John" .
· The shareware safeguard message is now apparent in the Preview window.
· The "/q" command line switch can now be used with the "/t" pseudo-project switch to prevent errors from being reported.
· The "View MIME" feature will now reflect the proper line breaks that are inserted in the Text Body. Previously, line-breaking was done at a later stage. As a result, if you manually edit the text body in the Preview window, the line-breaks are now your responsibility to maintain.
· POP3 connection errors now include an English description.
· Official support for Excel has been withdrawn as it never worked consistently.
· The "Test SMTP Server" tool now displays a notice window with the server being tested. This also allows you to abort the tests.
· The "MIME-Version" header was previously not using the proper case (it appeared as "Mime-Version").
· Fixed a problem with the G-Merge LET statement when assigning a value to a database column name that is enclosed in braces.
· Fixed a problem with SMTP servers specified by their IP address when the IP address contains spaces.
· Fixed a problem with adding rows to the database when the Identity Column name contains spaces.
· Fixed a problem in the reporting of an unknown G-Merge variable/column. Also, when an unknown variable/column is referenced in G-Merge, the log will now list all current variables and database columns, to help with throubleshooting.
· Fixed a potential fault when opening the Simple Send tool.
Version 12.3 (1/10/2001)
· Added the "Simple Send" tool to the Tools menu.
· Added the "Single Send" tool to the Tools menu.
· Added the "Pre-send" and "Post-send" DOS batches.
· Added the "View MIME" option to the context menu of the recipient list on the Preview window. This allows you to view the actual MIME message that will be sent for a particular recipient.
· Added the [[-Subject-]] predefined variable for the Incoming script. This is useful is performing different actions based on a keyword in the subject.
· Added the "Build text body from HTML" option. This will generate a text body automatically based on the contents of the HTML body.
· Added the ability to limit the number of times a SMTP connection is recycled. This is especially useful when using multiple SMTP servers.
· Numerous improvements to the Help file.
· The incoming log now lists the current settings and version to aid us with troubleshooting.
· The "Use bounce back defaults" tool can now be customized by the user by editing the file "Bounce Strings.txt" in the directory where Gammadyne Mailer is installed.
· The /m command line switch, which minimizes Gammadyne Mailer's window, can now be used with the /t switch, which sends a mailing using a pseudo-project.
· The asterisk (*) feature for log filenames can now be used with pseudo-projects.
· When performing a repeated send operation, the exclusion list will now be updated between sends. Previously, when a repeated send operation changed the exclusion list, the changes would not be used in the next send operation.
· When performing a repeated send operation, the progress window will no longer force itself to the foreground.
· For security reasons, the POP3 password is no longer listed in the log if there is a login failure.
· If the user aborts the send operation, the summary is now reported.
· When a G-Merge error occurs, the send log will now specify which script the error occurred in.
· A G-Merge syntax error will now position the cursor properly if the syntax error occurs at the beginning of the statement.
· Before making a database assignment, the Identity Column is now first checked for a valid value.
· The HTML Troubleshooter will no longer incorrectly report a missing image file when using the Content-Location method. Also, it will now check to make sure that the Content-Location prefix is present.
· Fixed the Direct Delivery feature.
Version 12.2 (12/11/2000)
· Fixed a bug in the message format when an HTML body is present with embedded images, but no text body is present.
· Fixed a potential access violation in the incoming feature when processing addresses in the body.
· Fixed a bug in processing Simple-Merge column names that contain spaces.
Version 12.1 (12/8/2000)
· Added the "Repeat Send" feature to the Send branch.
· Added the "Include Domains" feature to the Filtering branch.
· Added the "Test All" button to the bottom of the Preview window. This allows you send all messages to a test email address.
· Added the "Specify Content-Location" setting to the HTML/Options branch. This provides more control over how embedded images are identified in the HTML body.
· Added the db_aquire_next_row() function to G-Merge. This permits multiple database rows to be processed in the Incoming script.
· Added a description of G-Merge "While" loops to the help file, which amazingly had been left out since this feature was added in 6.0.
· Added the ability to set the "From" and "Reply-To" fields from the command line.
· The "Reply-To", "CC", and "BCC" fields can now be personalized with G-Merge.
· The "Auto-Insert cid:" feature will now insert the "cid:" prefix in the HTML tag.
· The Database Password now displays asterisks instead of the actual password.
· The number_format() G-Merge function now allows two commas to indicate that commas should be inserted even if the number is less than 10,000.
· The [[disregard]] G-Merge statement can now be used in the Incoming Script to abort the processing of a recipient.
· Some people have reported that embedded images sometimes appear as attachments. Although we have never been able to reproduce it, the message format has been tweaked slightly to hopefully prevent this.
· The Incoming feature no longer requires that the identity column be an autonumber unless the Processing Mode is "Add to database".
· Fixed a bug in processing Simple-Merge column names that contain spaces.
· Fixed a bug that prevented the Successful Send Date from being stored in the database when the "Identical" Send Mode is being used.
Version 12.0 (11/10/2000)
· The Pseudo-Language used to personalize messages is now referred to as "G-Merge". Data Tags are now referred to as G-Merge Statements. Basic Tags are now referred to as Predefined Variables.
· Added the "Run Script" option to the Incoming/Processing branch. This allows you to run a G-Merge script even if you are not adding rows to a database. The "Add row to database" option has become part of the "Processing Mode" setting.
· Added the "Success Script" and "Failure Script" features to the Send/Logging branch. This allows you to execute a G-Merge script based on the outcome of a sent message.
· Added the "Use global SMTP settings" and "Use project SMTP settings" options, along with the SMTP server table. This new arrangement allows you to store SMTP server information with the project instead of always using the global settings. It also permits the use of multiple SMTP servers.
· Added the file_save() function to G-Merge, which allows you to save a string to a file.
· Added the number_format() function to G-Merge, which provides complete control over formatting numeric data.
· Added the "db_delete_row()" function to G-Merge, which allows you to delete the row of the current recipient from the database. Added the "db_acquire_row()" function which locates a Incoming recipient in the database, permitting changes to the data associated with the recipient.
· Added G-Merge functions to convert to and from Base64, Quotable-Printable, UUEncode, canonical HTML, and canonical URL.
· Added the [[-TID-]] predefined variable to G-Merge. This holds the value of the Identity column in the database for the current recipient.
· Added the "Test DNS Server" tool.
· Added the "Delay" setting, which allows you to create a delay between messages while sending. This is useful for AOL, which apparently discards email from a source if too many arrive too quickly.
· Added the "Process Sender" option to the Incoming/Processing folder. The "Recipient follows body substring" option has been replaced with the "Addresses in body" setting and moved to the Processing branch along with the "Process Addresses In Subject" option. This new arrangement allows you to process all email addresses in the incoming message body, even if they do not follow a body substring.
· Added the "Insert Function" context menu option to all editboxes where G-Merge can be used. This allows you to choose a G-Merge function from a list. Now, whenever a database column, basic tag, or function is inserted, it will not be enclosed in double brackets if the cursor is already inside a G-Merge statement.
· Added the "Display summary" option to the Incoming branch, which controls whether or not a summary is display after an incoming operation completes.
· Added the "Use bounce-back defaults" option to the context menu of the "Body must contain substring" setting.
· Added the "Ignore duplicate recipients" option to the Incoming/Processing branch.
· Added the "/v" command line switch, which will make Gammadyne Mailer prompt the user before carrying out the operation. This can be used in conjunction with the "/a", "/e", "/o", and "/r" switches.
· Added some new character sets to the drop down lists for the Header Character Set and Text Body Character Set. Fixed an invalid code for Cyrillic/Windows. Fixed a problem with the storage of different character sets with the same name. As a result of this fix, you will need to set these two fields again.
· Numerous System-G improvements, especially to the Configuration Editor.
· Numerous improvements to the help file, including more hyperlinks.
· When the cursor is on a G-Merge function call, pressing F1 or choosing "Help" from the context menu will open the help file to the spot where the function is described.
· The "Add Successfully Sent Recipients to Exclusion List" feature now works with the Identical Send Mode.
· The "Insert Database Column" feature can now insert Simple-Merge columns as well.
· The "Locate mail server" tool now reports the DNS server, as well as IP addresses.
· The "View Log" feature will now display the log even if no application is associated with .LOG files.
· The "Value" column of the Database Clause Table now has a drop down list that contains all unique values present in the database column.
· The "/a" command line switch can now add recipients to the database and the recipient file, not just the recipient list.
· The "/e" command line switch can now add recipients to the exclusion file, not just the exclusion list.
· The Remove Recipients log will now report when a recipient has already been removed.
· The SMTP and POP3 passwords now display asterisks instead of the actual text.
· The "Test Send" window now remembers past email addresses in a drop down list.
· The HTML Troubleshooter now checks for excessively long lines.
· If a recipient is excluded from incoming processing because of the Exclusion List or because it is a duplicate, it will now be reported in the log.
· The Incoming summary window now provides an option to view the log (if one was created).
· An IP address can now be pasted into the "DNS IP Address" editbox.
· Email addresses in the form of "foo@.com" are now treated as invalid.
· Fixed a problem with carriage returns in the incoming log when database errors occur.
· Fixed a bug that would prevent the Incoming feature from being used in the shareware version. It would report that the "Add row to database" feature cannot be used in the shareware version, even if it was unchecked.
· Fixed a bug that prevented the Incoming script from reading database values from the newly created row (even though there is no conceivable reason to do so).
Version 11.1 (9/20/2000)
· Fixed a potential divide by zero bug under Windows NT.
· Gammadyne Mailer is no longer compiled with exception handling - it is not really necessary. This provides a size and performance increase.
Version 11.0 (9/18/2000)
· To reduce interface clutter, the classic Folder view has been eliminated. The Tree view is now used exclusively. The addition of all the new settings simply made the Folder view unworkable.
· Added the toolbar.
· Added the "Record send log" option. This allows you to control whether or not a log is kept as well as the location of the log file. This is especially useful for those who run multiple projects at the same time. To maintain backward compatibility, this setting defaults to "MMail.log" in the directory where Gammadyne Mailer is installed. The "LogFile" field was added for pseudo-projects to accommodate this.
· Added the "Preview Recipients" tool, which will display the recipients that will be receiving the message.
· Added the "Troubleshoot HTML" tool, which will identify common problems with HTML bodies.
· Added the "Attachment directory" and "Embedded files directory" settings. This allows you to omit the drive and directory from files located in this directory.
· Added the "Exclude domains" setting, which allows you to exclude recipients that have a particular domain.
· Added the "Send only to recipient range" setting, which makes it easy to do a mailing in sections.
· Added the "Connect to Internet", "Disconnect after operation", and "Disconnect on exit" options to help you control dial-up networking.
· Added the "Discard removals" option. If checked, when a recipient is successfully removed from the project, they will also be removed from the removal list.
· Added the "Reduce removals to simple form" and "Reduce locations to simple form" options. These provide improved flexibility when removing compound email addresses from the project.
· Added the "Use clauses" option for the "Remove" tool. It allows you to limit which recipients can be removed by using the Clause Table and Custom WHERE Clause.
· Added the "Throttle" feature, which allows you to limit how fast messages are sent.
· Added the "Allow extended characters in header" option.
· Added the "Add row to database" option for processing incoming email. Also, the latch() function was added to enable you to pull information out of the incoming message, and store it in the new database row.
· Added the [[-Company-]] basic tag, which contains the string that is inside the parenthesis at the end of the email address.
· Added the "Locate" and "Test" buttons to the "POP3 Server Name" setting. The "Validate" button for the "SMTP Server Name" setting has been renamed to "Test", and now displays the IP address.
· Added the "POP3 Server Port" setting. Leave this on 110.
· Added the "DNS Port" setting. Leave this on 53.
· Added the "Login to POP3 server" method for SMTP authentication. This is useful for SMTP servers that require you to login to the POP3 server before sending mail. The "SMTPAuthentication", "POP3Server", "POP3Port", "POP3User", and "POP3Password" fields have been added for pseudo-projects to accommodate this feature.
· Added the ability to set the location of the Incoming log file.
· Added the extract_day(), extract_month(), extract_year(), extract_hours(), extract_minutes(), and extract_seconds() functions to the pseudo-language. These functions extract the components of a date.
· Added support for creating a different log file for each send operation and incoming operation, as well as for the "Append Successes" and "Append Failures" features. Simply insert an asterisk (*) into the filename (i.e. c:\temp\mail*.log).
· Added the "/q" command line switch for use in conjunction with the "/s" and "/o" switches, which will prevent Gammadyne Mailer from reporting errors.
· Added the "/m" command line switch for use in conjunction with the "/s", "/o", and "/c" switches, which will make Gammadyne Mailer run minimized.
· Added the "DNSAddress" and "DNSPort" fields for pseudo-projects. These allow you to override Gammadyne Mailer's DNS settings.
· Added the "Register" button next to the database selector, providing a quick way to access the ODBC Data Source Administrator.
· Added support for the "ntext" (-10) SQL data type.
· The "Simple Merge Column" setting now contains a drop down list that, when opened, will be populated with the columns extracted from the first line of the recipient list.
· You may now use the Page Up/Down keys to move up and down the tree. Note: when a multiline editbox has focus, you will need to hold down the Alt key while pressing the Page key.
· The "Identical" Send Mode will now work with the "Store Successful Send Date" feature and the "Recycle SMTP connection" feature.
· The "Verify Addresses" tool uses a new, more accurate method to verify the existence of a mailbox.
· System-G now draws menus instead of the operating system.
· Numerous improvements to the help file.
· Fixed a bug that prevented the summary from being appended to the log when a send operation is aborted.
· Fixed a bug that prevented the use of attachments that are specified with a UNC path, such as \\work\foo.bar.
· Fixed a bug in processing incoming email that contains attachments.
· Fixed an erroneous "Cannot find file" error when using the "/t" switch with a pseudo-project filename that is enclosed in quotes.
· Fixed an email address extraction bug for addresses that contain a period in the user name. This affected the Incoming feature and the "Extract Email Addresses" tool.
· Fixed a bug in retrying failed direct deliveries.
· Compound email addresses in the form of "foo@bar.com" are no longer treated as invalid (i.e. the first @ sign is ignored because it is inside quotes).
Version 10.1 (7/6/2000)
· Added the "Sender" field to the "Headers" folder. This allows you to report one email address to the SMTP server, and a different one in the "From" header field. For backward compatibility, if the "Sender" field is left blank, the email address in the "From" field will be used instead.
· Added the "To" field to the "Headers" folder. For backward compatibility, if this is unchecked, the recipient's email address is put in the To field. If checked, you can specify different text which can be personalized with the pseudo-language.
· Added the "DatabaseTimeout", "DateFormat", "Sender", "To", and "TextSubtype" settings for pseudo-projects.
· Added the "Color Schemes" submenu to the "System-G" menu.
· Added the "Text Subtype" setting to the "Text Body" folder.
· The Incoming criteria now accept multiple substrings.
· The "Recipient follows body substring" feature will now detect a list of email addresses that follows the body substring.
· The "Auto-Respond" feature will now respond to all recipients that qualify within a single message, not just the sender of the message. As a result, a single incoming message can generate more than one response.
· The "Auto-Respond" feature will now ignore recipients that are present on the "Exclusion" folder.
· You may now drag and drop files onto the “Removals” editbox. All email addresses in the files will be extracted and appended to the editbox.
· The "Auto-Respond" feature no longer requires that the Send Mode be "No Preview" and that no database be used. These settings are now controlled automatically.
· The Incoming feature now accepts a list of email addresses in the "From" field.
· The preview mode now has a limit of 1000 recipients. We got tired of explaining to people why their machine runs out of memory when trying to preview 150,000 messages.
· Fixed an erroneous "Invalid command line parameter" error when using GM.BAT.
Version 10.0 (6/22/2000)
· All System-G settings, including the SMTP server name and port number, are now stored in a different part of the registry, under HKEY_LOCAL_MACHINE instead of HKEY_CURRENT_USER. This will ensure that these settings are not lost if you log on as a different user.
· Added the "Tree View" option to the "Options" menu. This provides an alternative user interface based on a tree structure rather than a set of folders. However, this is only intended for advanced users since the help file refers only to folders, not the tree.
· Added the "Simple-Merge" feature to the "Recipients" folder. This allows you to personalize messages without using a database.
· Added functions to the pseudo-language. These allow you to manipulate strings, dates, even files.
· The "Identification" folder has been renamed "Headers".
· Added the "Additional Headers" editbox to the "Headers" folder. This lets you specify custom email header fields.
· Added the "Incoming" folder and moved all of the "opt-out" settings there. Collectively, this is now called the "Incoming" feature.
· Added the "Auto-respond" option to the "Incoming" folder.
· Added the "Include addresses in subject" option to the "Incoming" folder.
· Added the "Processing mode" setting to the "Incoming" folder. This allows you to place Incoming recipients in a different location than the removals list, or even have them automatically removed from the project.
· The "Incoming" feature now provides a report about the reasons that messages were ignored. Also, the "Generate log" option was added which provides you with a very detailed account of the operation.
· The "Incoming" feature can now decode header fields that are in Base64 or Quotable-Printable format.
· Added the "Header must contain substring" option to the "Incoming" folder. This is similar to the "Subject must contain substring" option but includes all header fields, not just the subject.
· Added the "Auto-insert cid:" option to the "HTML Body" folder. This feature makes it easier to use embedded images in HTML email.
· Added the [[-User-]] and [[-Domain-]] basic tags, which are extracted from the recipient's simple email address.
· Added the "/c" command line switch which instructs Gammadyne Mailer to check for incoming messages.
· Added the "Retry direct delivery failures" option to the "Send" folder.
· Added the "Wait until" option to the "Send" folder. This allows you to make Gammadyne Mailer wait until a particular time to start the send operation.
· Added the "Removal Method" setting to the "Database" folder. This provides for several different methods of removing a recipient from the database. The default setting is "Insert exclamation point" for backward compatibility.
· Added the "View message info" option to the context menu of the recipient list on the preview window. This lets you see additional fields of the message, which is useful when using the pseudo-language to customize the subject, sender, additional headers, and HTML embedded files.
· Added the automatic database login settings (user name and password).
· Added the "Close database" option to the "Tools" menu.
· Added support for SMTP authentication (CRAM-MD5, PLAIN, and LOGIN).
· Added the "Append successes" and "Append failures" settings to the "Send" folder.
· Added the "Expiration Date" option to the "Headers" folder.
· Added the "Edit" button next to the "HTML Body File" setting.
· Added the "Verify all addresses" option to the "Tools" menu, since its location on the "Remove" folder was not particularly obvious.
· The F6 key will now open the log file. It can be used on the Preview window as well.
· The "Store successful send date" feature no longer cares if you specify a date column; it will work equally well with string columns. This provides compatibility with Excel spreadsheets.
· The "Analyze Database" tool no longer requires that you first enter a table name.
· You are now permitted to separate pseudo-language statements with a semi-colon. Previously, each statement had to be within a separate data tag. IF-statements have some limitations with this; read the section on conditional bodies.
· You are now permitted to have multiple instances of Gammadyne Mailer running at the same time. This permits you to send multiple mailings simultaneously.
· "Remove Recipients" will now alphabetize the list of removals and report recipients that were not found.
· Added support for the NCHAR SQL data type (-8).
· Added the "Insert database tag" and "Insert basic tag" options to the context menus of the "From", "Subject", and "HTML embedded files" settings.
· Added support for "Pseudo-Projects". A pseudo-project allows you to specify all of the settings for a send operation from the command line. Unlike a regular project, the pseudo-project is plain ASCII text, so it can easily be generated by another program.
· Numerous System-G improvements.
· It is no longer required to enter a SMTP server and port as long as you use the "Direct Delivery" option.
· The [[inject]] tag has been replaced with the file_fetch() function. Although it is still supported, it will eventually be removed altogether.
· Moved the "Send Reading Confirmation To" option to the "Headers" folder since it is accomplished with a header field.
· Added the file "GM.BAT" to the installation. This batch file simply launches "MMail-M.exe". This helps make command line operations a little shorter.
· The send speed, as reported in the operation log, is now calculated differently. It now measures the raw sending speed, and does not include the time it takes to prepare the message and log on to the SMTP server. This will give you a better idea of how fast your upstream throughput is.
· When it is discovered that an "if" statement has no matching "endif" tag, the cursor is now properly positioned at the beginning of the "if" tag.
· The "let" tag now allows assignments to database columns that are enclosed in braces (i.e. [[let {foo bar} = 6]] ).
· Fixed "Incoming" tool bugs involving certain POP3 servers, including Microsoft Exchange Server.
· Fixed an ODBC memory leak. Also, the DNS cache now has a size limit.
· Fixed a bug involving multiple [[elseif]] statements.
Version 9.2 (4/6/2000)
· Added the "Identical batch size" setting to the "Send" folder. This allows you to limit the number of recipients that are grouped into a batch when using the "Identical" Send Mode. Some SMTP servers have a limit to the number of recipients that can be grouped together.
· Added the "Canonicalize data" option to the "HTML" folder. This is useful when using database data that contains HTML code.
· The psuedo-language can now be used in the HTML embedded files list.
· MMP files are now associated with Gammadyne Mailer. You can now double click on an MMP file to open it in a new instance of Gammadyne Mailer.
· The "Extract addresses from file" tool now gives you the option to place the extracted addresses in the list of removals on the "Remove" folder. Also, when saving the extracted addresses to a file, the output filename will be remembered.
· The "Text body encoding" will now default to 8-bit for new projects. Most email clients can handle extended ASCII characters just fine.
· The "Verify addresses" tool will now verify only those addresses that get past the clause table and custom where clause.
· Numerous System-G improvements.
· Database column names containing the pound sign (#) are now properly enclosed in brackets when an SQL statement is generated.
Version 9.1 (1/27/2000)
· Added the "Specify header's character set" option to the "Identification" folder.
· You may now use extended ASCII characters in the following fields: from, reply-to, cc, bcc, and subject. This is done in accordance with RFC-1522.
· The "Specify character set" option was moved to the "Text Body" folder, a more sensible location. Also, this option is now described in the help file.
· Fixed a bug that would cause the "To" field to be omitted from the message header if a BCC was used.
· Fixed a bug with the "Identical" send mode that could cause a "Message has no FROM field" error.
· The dates in the clause table are now checked for validity so that the error comes from Gammadyne Mailer, not the database.
· The "Preview Final Where Clause" window was not immediately reflecting changes to the "SQL Date Format" option.
Version 9.0 (1/24/2000)
· Major update to the System-G interface.
· The "Remove Recipients" window has been moved to the new "Remove" folder.
· Added the "Verify All Addresses" feature to the "Remove" folder.
· Added the "Opt-out" feature to the "Remove" folder.
· Added the "Case sensitive" and "Substring mode" options to the "Remove" folder.
· Added the "Extract email addresses..." option to the "Tools" menu. This allows you to extract all the simple email addresses contained in one or more files. This will work on any kind of file as long as it is not encrypted or compressed.
· Data tags may now be used in the "From" and "Subject" fields.
· Added the "Trim whitespace from data" option to the Database folder. This allows you to remove spaces, tabs, and carriage returns from both ends of strings that are pulled from the database.
· Added a description of Control Panel database registration to the help file.
· Added a help file section on importing addresses from the Outlook Express Address Book.
· Added the "Preview HTML" option to the right-click menu of the HTML body on the Preview window. However, embedded images will not appear in the preview because of the special format required to identify images in an email message.
· Added the "Canonicalize extended ASCII characters" option to the "HTML" folder. If checked, when data is inserted into the HTML body, any extended ASCII characters (128-255) will be canonicalized. For example, the copyright symbol would be canonicalized to "©".
· Added the "Query timeout" option to the "Database" folder. If a database query takes longer than this number of seconds, the query will fail with a "Timeout Error".
· Added the "Now" button next to the "Only send when before" editbox.
· The "Date Compatibility Mode" checkbox has been changed to the "SQL Date Format" combobox. It was discovered that some databases use yet a third non-standard date format.
· Mail server DNS information is now cached, making the "Direct Delivery" feature faster.
· Gammadyne Software's email address has been removed from the safeguard message that is inserted into email by the shareware version. Certain automatic programs, like SpamCop, will automatically send a complaint to our ISP when it sees our email address in a piece of spam.
· Gammadyne Mailer will now work with database column names that contain extended ASCII characters. Russian databases may use such characters.
· Previously, the "/s" command line switch would always send in the "No Preview" mode. Now, however, the send mode specified in the project is used by default. You can force a particular send mode by using the "/I", "/L", "/N", and "/P" switches to specify "Identical", "Last recipient only", "No preview", or "normal (Preview)" mode.
· Fixed a bug that caused data tags in the list of attachments to be canonicalized as if the tag was encountered in the HTML body.
Version 8.0 (12/2/1999)
· Added the "Analyze Database" option to the "Tools" menu. This allows you to obtain some basic information about the database and make sure a good ODBC connection can be established.
· Added the "Issue SQL Command" option to the "Tools" menu. This allows you to enter SQL commands and issue them to the database.
· Added the "Validate email address" option to the "Tools" menu. This allows you to determine if an email address is valid.
· Added the "[[nixbody]]" tag, which allows you to exclude the text body, HTML body, or attachment list.
· Added the "[[inject]]" tag, which allows you to insert a file into the text body, HTML body, or attachment list.
· Added the "BCC" field, which allows you to send a copy of all messages to a recipient.
· Added the "Delivery Status Notification" setting, which allows you to control how the SMTP server notifies you about the success or failure of all messages sent.
· Added the "Reading Confirmation" option, which allows you to request that recipients send a confirmation when they have read the message.
· Added the "Insert database column" and "Insert basic tag" options to the context menu of the attachment list.
· Added the ability to remove recipients using the command line switch "/r".
· Added the "Analyze" button next to the "Store successful send date" editbox. This option was previously only available on the context menu.
· The "Remove Recipients" tool now allows email addresses to be separated by a comma or semi-colon.
· The "Store successful send date" drop down list will now only show columns of date type.
· The "Insert database column" feature will now properly enclose the column name in braces if necessary.
· Added the "Date Compatibility Mode" to the "Database" folder in order to fix an incompatibility with storing dates in some databases. If you have trouble storing dates, toggle this setting.
· Fixed a bug that would cause only the first recipient to be accepted. This would only happen when using the "Store successful send date" option with the "No Preview" send mode.
· After changing the DNS server, the "Locate SMTP Server" feature would not use the new DNS server unless you begin a send operation or restart Gammadyne Mailer. This has been fixed.
Version 7.2 (10/28/1999)
· Added the "Analyze sent dates..." option to the context menu of the "Successfully sent date column".
· The actual conversation with the SMTP server is now stored in the log if an error occurs. This will help troubleshooting connection problems.
· Fixed a bug that caused a problem connecting to some picky SMTP servers that require a domain name in the "HELLO" portion of the conversation.
· Fixed a bug that prevented using wildcard characters in the list of attachments.
· Fixed a bug that would cause Gammadyne Mailer to not use a newly entered SMTP server (the old server would be used). This would only occur if "Recycle SMTP Connection" is checked and mail was sent with the old server first.
Version 7.1 (10/26/1999)
· Fixed a bug that was preventing connections to some SMTP servers. Our testing procedure now verifies compatibility with over 200 different SMTP servers.
· Fixed a bug that would generate a database error if the "Order by" column name contained spaces.
· Fixed a bug that would generate a database error if a database column contained the slash (/) character.
Version 7.0 (10/25/1999)
· Added the ability to process the pseudo-language in the attachment list, just like with the message body. This allows you to automate the customization of attachments.
· Added the "Store successful send date" and "Only send when before" options. This combination permits you to ensure that recipients only receive one copy of a message, even after a send operation is aborted.
· Added the "Add successfully sent recipients to exclusion list" option.
· Added the [[disregard]] tag to the pseudo-language, which allows you to dynamically disregard messages.
· Added the NULL keyword to the pseudo-language, which allows you to assign or test for null values in database columns.
· Added the "Validate" button to the SMTP server edit box.
· Added the "Refresh column list" option to the context menu of all database column comboboxes.
· Added the "Add clause" and "Delete clause" buttons to the bottom of the clause table. Removed the Clauses menu (now redundant).
· Added the "Manually process clause table" option.
· Added the "Preview WHERE Clause" button.
· Added the "Null" column to the clause table so that clauses can act on NULL values in the database.
· Added the "Locate SMTP server" option to the new "Tools" menu. The "Remove recipients" option has been moved to this menu.
· When a recipient address is broken into its constituent parts, the "mailto:" prefix will now be removed from the email address if it is present.
· Improved support for database columns that are dates with a time of day. Date/time literals are now permitted, and comparison operators will work correctly.
· The clause table and the custom where clause have been moved into a new folder, the "Clauses" folder.
· Gammadyne Mailer can now be minimized during a send operation.
· The user is now asked to confirm the abortion of a send operation. Several details regarding abortion and the log file have been addressed.
· In the message body, you can now escape the "[[" character sequence by adding another bracket. This means that you can use "[[[" to represent "[[" without the parser expecting a data tag. You do not need to escape the "]]" character sequence.
· The database table name is now allowed to be surrounded by reverse tick marks, a requirement of Excel. Previously, if the table name contained a space, it would be surrounded by brackets when SQL was generated. Brackets should not be used when the table name is already surrounded by reverse tick marks.
· The recipient and exclusion lists can now handle comma and semi-colon separated lists.
· Fixed a bug in setting the values of the [[-FirstName-]] and [[-LastName-]] basic tags for recipients using the format "First Last" user@domain.com (Company Name).
· The Direct Delivery feature now uses a DNS server to obtain the name of the mail server for the recipient. Also, the log now indicates if Gammadyne Mailer was unable to make the direct delivery and had to resort to the default SMTP server.
· When recycling a connection after an error occurs, the connection is now properly reset.
Version 6.0 (9/27/1999)
· Added the "Recycle SMTP Connection" option. This can significantly speed up message sending.
· Added conditional body text. This allows you to exclude sections of the message body based on database values.
· Added the "CC" feature.
· Added the "Line Length" setting.
· Added the "Paste and canonicalize" option to the HTML body's context menu.
· Added the [[-Index-]] basic tag. This number, which begins at one, is incremented after each message is processed.
· You can now perform mathematical operations on numeric data tags, concatenations of strings, and date adjustments. For example:
[[foo + 6]] [[bar + "abc"]] [[-Now- + 30]].
· Added the ability to assign values to database columns. For example:
[[let foo = 3]].
· Added the ability to declare and use variables. For example:
[[var x = foo + 1]] [[let x = x + 1]]
· Added the ability to perform loops in the message body. For example:
[[var i = 0]] [[while i < 4]] ... [[let i = i + 1]] [[endw]]
· As a result of these changes, database column names with spaces must now be enclosed in braces. For example:
[[ {foo bar} + "abc"]].
· When data tags are used in an HTML body, the text they resolve to is now canonicalized in case it contains illegal characters, such as "<".
· Each message now has a "Date" field in the header. Normally the SMTP server will put this in automatically. However, apparently Hotmail does not do it properly.
· Changed the wording of the controls in the "Exclusions" folder.
· Fixed a bug that could cause the send log to not be properly appended to. Also, the log will now be opened with the default editor instead of being displayed in a Gammadyne Mailer window. The carriage returns in the log file have been altered so that it will appear properly in Notepad.
Version 5.0 (9/11/1999)
· Added the "Send Mode" setting to the "Send" folder. As a consequence, the "Last recipient only" and "All messages are identical" settings have been eliminated as they are now part of the send mode. A new method of sending, "No preview", has been added. This is useful when sending to very large lists of recipients because it uses far less memory.
· Added command line functionality.
· Added the "Auto-backup project" option to the "Options" menu.
· A detailed log of the send operation is now kept. From this you can see why recipients are rejected and which messages had errors.
· A window will now appear while the recipients are being gathered. This lets the user know that the program is working, and gives the user a chance to abort the operation.
· Fixed a bug that could cause the "Send to this recipient only" context menu option to appear more than once.
· You can now use tabs in the "Text Body" and "HTML Body" edit boxes.
· All multi-line edit boxes now have search and replace context menu options.
· If you manually type a table name, the database column controls will properly re-enable.
· The project is now automatically saved when a Send operation is started.
· Fixed a bug that could cause the drop down list of database columns to appear empty after the table name has changed.
· Fixed a bug that could present old column information when one project is closed and another is opened.
· The following email address formats are now handled properly (in terms of basic tags), even though some of these are technically illegal:
(Name) foo@bar.com
(Name)
foo@bar.com Name
foo@bar.com "Name"
foo@bar.com (Name)
Name
"Name"
(Name)
Version 4.0 (8/26/1999)
· Added the "All messages are identical" option (which later became the Identical Send Mode).
· Added the "Send to this recipient only" option on the context menu of the recipient list in the Preview dialog.
· Now recognizes the NVARCHAR data type (-9) introduced by SQL Server 7.0.
· The drop down list of database table names now includes "views" (a.k.a. "queries") and other special types of tables.
· When SQL code is generated, table names are now enclosed in brackets if they contain dashes. This is required by Access, which allows dashes in the table name.
· Changing the database table will no longer erase the recipient column, identity column, and order column. It is up to the user to ensure that these fields have proper column names.
· The "Test" option on the Preview dialog was inefficiently using memory. This has been corrected.
· There is no longer a 30-day trial period.
Version 3.2 (8/15/1999)
· Database table names are no longer automatically enclosed in brackets when SQL code is generated. This was causing a problem with Informix. Brackets are still used if the table name contains spaces.
· Fixed a problem that could cause an access violation when exiting the program after using a database.
· Global settings are now stored in a file named Mailer.DAT instead of the registry.
· Illegal HTML embedded files are now ignored if no HTML body is specified.
· Illegal attachment files are now reported before the send preview dialog appears.
· A shareware notification message is now appended to the text body. This message is disabled once the program is registered.
Version 3.1 (8/10/1999)
· A bug was fixed that produced an error when the clause table contained column names with spaces.
· The database query is now released immediately after all data is received.
Version 3.0 (7/26/1999)
· Added HTML functionality.
· ODBC32.DLL is no longer statically linked. This means that this DLL is not required to run Gammadyne Mailer, although it is required to use a database.
· Email address in the illegal form of "name user@domain.com" are now interpreted properly. In other words, the address does not require < and >.
· An intermittent problem was fixed that could cause recipients to be rejected when using MS Access.
· If no recipients are accepted, a detailed report is displayed with an explanation of why each recipient was rejected.
· Fixed a problem with word-break on the last line of the message.
Version 2.1 (7/9/1999)
· The program has been renamed from "Manifold Mail" to "Gammadyne Mailer" because of a trademark dispute.
Version 2.0 (6/10/1999)
· Added the "Identity Column" setting.
· Added the "Remove Recipients" feature.
· Added the "Exclusions" folder with all its functionality.
· Added the "switched data" G-Merge feature.
· Added the "Help" button to the Send Preview dialog.
· Added the "Edit" button for the recipient and body files.
· Added the "Auto-open last project" and "Auto-save project" options.
· If any errors occur during a send operation, statistics will be appended to the error log.
· When sending email, Gammadyne Mailer will now always say "HELO", eliminating a problem with some SMTP servers.
· You can now have both a recipient file and an explicit recipient list, not just one or the other.
· After discovering that the DOS "start" command is not consistent between NT and 9x, another method is being used to send feedback and go to the Gammadyne Homepage.
· Invalid database columns in the message body are now detected before any information is queried from the database. This is helpful because some databases do not provide intelligible error messages.
· The "Direct Delivery" setting is now saved with the project. Previously, it was a global setting.
· If an error occurs during the send operation, the log will be automatically saved to "MMail.LOG" in the directory where Gammadyne Mailer was installed.
· The [[Now]] tag has been changed to [[-Now-]], and is classified as a basic tag. You can now format database date columns the same way you are allowed to format the [[-Now-]] tag.
· Gammadyne Mailer can now handle table and column names with spaces.
Version 1.1 (5/18/1999)
· Added the "Direct Delivery" option.
· Added the Window menu.
· Gammadyne Mailer can now deal with SMTP servers that can't accept a compound email address for the sender or recipient.
· Gammadyne Mailer is now more tolerant of SMTP servers that don't say goodbye properly.
· Added the "Body Encoding" option.
· Fixed bug that could cause Gammadyne Mailer to hang for certain SMTP server responses.
Version 1.0
· Project began 4/9/1999.
· Product released, 5/12/1999.
|