ReadMe
Description
Quick
Detailed
New Features
Version 6.0
Version 5.4
Preferences
Introduction
Advanced
Expert
Diagnostics File
Bounce Tracking
Ignored Addresses
Global Remove File
Multiple Lists
Configuration File
Sample Config File
Templates
New List Servers
New Bounces
Filing Bug Reports
Form Letters
Unsub Form Letter
Postmaster Form
MB Example
Upgrading to "Pro"
Features
Purchasing


MailBounce Version 6.0
New Features

MailBounce v6.0, released May 2003


This file describes the new features in MailBounce Version 6.0, and provides instructions for upgrading from previous versions.


Important Notes:

  • In addition to the technical changes detailed in this document, there have also been some substantial non-technical changes since the last full release (in November 1999). Not the least of these is a change in product name from SmartBounce to MailBounce. The non-technical changes are summarized in the Product Positioning Changes document; please refer to that document for details on changes in product positioning since the November 1999 release.

  • As a result of the change in product name, please note that the Preferences file names have changed in Version 6.0. You do not need to rename your current Preferences file, as MailBounce v6.0 will automatically do this for you on the first run. Click here for details on changes to the Preferences file name.

  • Note that there is a fee to upgrade to MailBounce Pro v6.0 from any previous version of MailBounce or SmartBounce.

    Upgrade Highlights:

    • Fuzzy Matching: New fuzzy-matching checks have been added at the MEDIUM and HIGH fuzziness levels.

    • Bounce Sensitivity Level: v6.0 introduces a "bounce sensitivity level" for bounce recognition.

    • Automatic File Deletion: Several different files can now be automatically deleted after each run.

    • Incremental Bounce Tracking: Addresses that bounce repeatedly within a single supergroup may now be quickly removed.

    • Subscriber Count: The total number of subscriber addresses in the subscriber list file is counted and displayed in the address-matching section.

    • Trigger File: There is now a "trigger file" option that will instruct MailBounce to not process the bounce file if the trigger file is not present.

    • AutoResponder Rejection File: Allows you to specify text from non-bounce messages that you would like to have MailBounce exclude from the unrecognized bounces file.

    • VERP and Custom Headers: MailBounce now features direct support for both VERP and subscriber address coding within custom SMTP headers.

    • Process Synchronization: MailBounce will optionally create "notification files" upon creation of new server files and/or upon process completion, thus providing a completely platform-independent means of synchronizing processes.

    • Macintosh Files: Macintosh users may now specify one of several common Mac applications in which they'd like to be able to open output files created by MailBounce.

    • Ignored File and Global Remove File Comments: Lines containing e-mail addresses may now be "commented out" in the Ignored file and in the Global Remove file.

    • Preferences File: v6.0 introduces a more flexible Preferences file format, and also changes the name of the Preferences file.

    • And, as always, several new bounce formats have been added to the MailBounce Recognition Engine. The MBRE recognizes and correctly classifies better than 99% of bounces in typical bounce files.


    Bug Fixes

    The following bugs have been fixed in v6.0:

    • Excessively long or badly formatted subscriber addresses could potentially cause MailBounce to bugcheck as the addresses were being read from the subscriber list file. This error has been fixed, and all subscriber addresses are now format-checked as they are read from the file.

    • Multi-list configurations that seek to include unmatched addresses in the server files previously experienced a problem where the unmatched addresses would be written to only the first server file. That error has been fixed, and unmatched addresses are now written to all server files.

    • Minor display errors in the address-matching section have been fixed.


    New and Changed Features Summary:

    • Fuzzy Matching: New fuzzy-matching checks have been added at the MEDIUM and HIGH fuzziness levels. These checks will provide even greater address-matching performance than previous versions of MailBounce. The new fuzzy-matching checks are automatically activated if your fuzzy matching sensitivity level is set to either MEDIUM or HIGH. (Pro version only)

    • Bounce Sensitivity Level: MailBounce has classically tried to perform "speculative" e-mail address extraction from bounces, even in cases where there might not appear to be a bounce address present. v6.0 introduces a "bounce sensitivity level," which allows you to turn off the speculation feature. (Note that this will adversely affect the MailBounce Recognition Engine's bounce-recognition performance, though only marginally.)

    • Automatic File Deletion: The scratch file is now automatically deleted after each run, and the error log is automatically deleted if no errors were encountered during processing. (Perl users: If your perl wrapper uses the "-s" check to determine whether the error log is empty, this check will continue to function correctly. However, you may now optionally replace the "-s" check with the slightly faster "-e" check for the error log.) Also, the bounce file, subscriber list file, and trigger file may optionally be deleted after each run.

    • Incremental Bounce Tracking: Addresses that bounce repeatedly within a single supergroup may now be removed immediately. This is useful in cases where you are using incremental bounce tracking to manage multiple mailing lists that have very different posting rates. In the past, this meant that repeatedly bouncing addresses on the higher-volume list had to bounce for a longer period than was necessary to declare the addresses as defunct; this was necessary in order to prevent loss of synchronization with bounces from the list with the lower posting rate. These addresses may now be removed much sooner. Also, the bounce tracking files are now rolled over much more efficiently. (Pro version only)

    • Subscriber Count: If you have MailBounce's address-matching feature turned on, then MailBounce will count the number of addresses that are present in your subscriber file. The final count will be displayed at the end of the address-matching phase. If you have more than one subscriber list and are using a Multi-List Configuration file, then each list will be individually totaled and displayed.

    • Trigger File: There is now an option to prevent MailBounce from processing bounces if a "trigger file" is either missing or is empty. MailBounce will execute normally if the file is present and is not empty. (Note: This is a simple "-s" check in perl.) There is also an option to have MailBounce automatically delete this file if it is present and is not empty.

    • AutoResponder Rejection File: Allows you to specify text from non-bounce messages that you would like to have MailBounce exclude from the unrecognized bounces file. For example, notifications from Lotus Notes users that the message has been opened (or read or deleted) can now be excluded from the unrecognized bounces file. (Pro version only)

    • VERP and Custom Headers: MailBounce now features direct support for both Variable Envelope Return Path ("VERP") headers and for subscriber address coding within custom SMTP headers and message footers. (Pro version only)

    • Process Synchronization: A "hidden" feature since v4.0, MailBounce v6.0 formalizes the ability to have MailBounce create "notification files" upon creation of new server files and/or upon process completion. Other processes may poll (i.e., look) for these files and synchronize on them, thereby creating a completely platform-independent means of synchronizing external processes with MailBounce. To ensure proper synchronization, MailBounce will automatically delete these files if they are present when the program starts.

    • Macintosh Files: Macintosh users may now specify one of several common Mac applications in which they'd like to be able to open output files created by MailBounce. (Previously, the type and/or creator codes had to be specified explicitly.)

    • Ignored File and Global Remove File Comments: Lines containing e-mail addresses may now be "commented out" in the Ignored file and in the Global Remove file. Any line whose first non-blank character is an exclamation point "!", a pound sign "#", or a semicolon ";" will be treated as a comment line, regardless of any other data on the line. Refer to the Ignored file documentation and the Global Remove file documentaiton for details on this feature. (Pro version only)

    • Preferences File: Starting with v6.0, you may optionally remove any unused settings from the Preferences file; all "missing" settings will automatically be assigned default values. Refer to the Preferences file documentation for details.

      Also, note that the Preferences file name has changed as of Version 6.0. Please see below for details on the name change.


    Preferences File Changes and New Features:

    Preferences File Name Change: The name of the Preferences file has changed, in order to reflect the product name change from "SmartBounce" to "MailBounce." As before, the Preferences file name is platform dependent. Both the old and new Preferences file names for each platform are shown below:

      PlatformOld File NameNew File Name
      Windows
      (all versions)
      SmartBnc.iniMailBounce.ini
      Mac OS and
      Mac OS X (Carbon)
      SmartBounce PreferencesMailBounce Preferences
      Unix, including
      Mac OS X (Darwin)
      .smartbounce.cf.mailbounce.cf

      IMPORTANT NOTE: The first time you run MailBounce v6.0, it will change the name of your Preferences file from the old name to the new name, as shown in the table above. MailBounce will also update your Preferences file to the latest version, which will include new features as well as changes to keywords, as described in detail below.

      Please note that the file will be renamed, not copied; thus, the old Preferences file will no longer exist once the rename and format conversions are complete. This is done to reduce confusion, and to ensure that any automated methods that have been created for updating the Preferences file are not continuing to update a file that is no longer being used by the application.

      If you have any questions about changes to the Preferences file, feel free to contact Smart Mail Solutions with your questions.

    Changes to Existing Settings: The keywords for the following settings have been changed as shown below. These changes are solely for clarity, and do not represent any changes in the function or processing of those features.

      verify addresses
          has been changed to
      match bounce addresses to subscriber list

      secondary server file name
          has been changed to
      redirects file name

      secondary server fuzzy file name
          has been changed to
      redirects fuzzy file name

      subscriber list file
          has been changed to
      subscriber list file name

      subscriber list backup file
          has been changed to
      subscriber list backup file name

    If any of these settings are present in your Multi-List Configuration file, they will be updated at the same time that your Preferences file is updated.

    New Preferences Settings: The following settings are new with MailBounce v6.0, and represent new functionality. See the "New and Changed Features" section for general information about each feature.

    In each case, the default value for the setting will be shown, with options for that setting shown either to the right or in the text that immediately follows the setting. The default values shown are the values that MailBounce will use if the setting is not present in the Preferences file.

    Each setting is linked to its description in the Preferences documentation files.

    
    bounce sensitivity = 'HIGH'     ! Options: HIGH, LOW
    
      Up through v5.4.1, the MailBounce Recognition Engine performed speculative bounce recognition, in which it would selectively extract addresses that "appeared" to be responsible for the bounce message. The requirements for speculative recognition are very conservative, and there have been no reports of incorrect subscriber addresses being extracted as a result of speculative bounce recognition. However, in order to accommodate environments that are not conducive to speculative address extraction, the BOUNCE SENSITIVITY feature has been added.

      There are currently two settings available for this feature:

        HIGH: The HIGH setting enables speculative address extraction, and thus provides the same bounce-recognition performance for which MailBounce is renowned. This is the default setting.

        LOW: In the LOW setting, MailBounce will not perform speculative address extraction. This will slightly degrade the bounce-recognition performance, but might be appropriate for sites that desire to be extra conservative in their bounce processing.

      For backward compatibility, this feature will default to the 'HIGH' setting when MailBounce updates your Preferences file.

    
    delete bounce file when finished = 'NO'
    
      If you would like MailBounce to delete your bounce file when it finishes processing the file, then set this option to 'YES'. NOTE: Deleting the bounce file will cause the entire file and its contents to be removed. Do not select this option unless you specifically do not intend to keep a copy of the bounce file on hand.
    
    delete subscriber list when finished = 'NO'
    
      If you would like MailBounce to delete the file containing your subscriber list when it has finished processing the list, then set this option to 'YES'. WARNING: Deleting the subscriber list will cause the entire file and its contents to be erased from the disk. Do not select this option unless the version of the subscriber list that MailBounce is processing is an "extra" copy that does not need to be kept.
    
    use incremental hard bounce threshold = 'NO'
    incremental hard bounce threshold = '3 TIMES'
    
    use incremental soft bounce threshold = 'NO'
    incremental soft bounce threshold = '5 TIMES'
    
      If you are using incremental bounce processing to manage multiple mailing lists that have significantly different posting rates, then it is possible that bounces from the higher-posting-rate mailing list are taking longer to be removed than is absolutely necessary.

      As an example of this, suppose you are managing bounces from two mailing lists: An announcement-style mailing list with one post per week, and a discussion list that sees at least a few posts per day. In order to avoid losing sync with the bounces from the once-a-week announcement list, let's suppose that you set up incremental bounce processing to process a super-group once a week, with a hard-bounce threshold of two weeks and a soft-bounce threshold of three weeks. This means that any soft-bouncing address on the busy discussion list will require at least three weeks for removal. Ideally, you'd like to remove an address like this after, say, four or five days of soft bouncing, rather than wait three weeks.

      With incremental thresolds, it is now possible to remove addresses that are repeatedly bouncing within super-groups. Suppose you are processing bounces every day, and you want to remove the soft-bouncing address in the case above after (say) four days of bouncing. Since you are processing bounces every day, you would need to set an incremental threshold of four times. The following entries in the Preferences file will do this:

        
        use incremental soft bounce threshold = 'YES'
        incremental soft bounce threshold = '4 TIMES'
        

      This setting will remove any soft-bouncing address that bounces at least once a day for four consecutive days (i.e., "four times") within a super-group.

      If you wanted to remove hard-bouncing addresses after two consecutive bounces, you would configure the settings for this option as follows:

        
        use incremental hard bounce threshold = 'YES'
        incremental hard bounce threshold = '2 TIMES'
        

      Note that, at this time, the only setting option for incremental thresholds is the 'TIMES' setting; i.e., there are no 'DAYS' or 'WEEKS' settings. Also, there are no "fuzzy" incremental thresholds. These might be implemented in future releases (based on demand).

      Finally, it is important to know that there are some risks associated with incremental bounce processing. As an example, consider the case discussed above, where bounces are being processed simultaneously from a busy discussion list and a once-a-week announcement list. In that example, if an address on the discussion list hard bounces just one time each week for two weeks, or soft bounces just once each week for three weeks, then it will meet the primary tracking threshold and will be removed from the list. However, if bounces from the two lists were being processed separately, then the address would not have been removed. For this reason, it is best to "group" bounces only from lists that have similar posting rates.

    
    use trigger file = 'NO'
    trigger file name = 'mailbounce_trigger_file.txt'
    delete trigger file = 'NO'
    
      These settings allow you to enable or disable the "trigger file." This file is used to control the execution of MailBounce, as follows: If the trigger file is present and is not empty (i.e., the file contains at least one character), then MailBounce will execute normally. If the file is either empty or missing, then MailBounce will not run.

      An example of the use of this file is to control processing on a mailing list that has a relatively low posting rate. You can set up a mailbox and subscribe it to the mailing list; then, if at least one message has posted to the list since the last time that MailBounce ran, the spool file for that mailbox will be non-empty, which will cause MailBounce to run normally. If no posts have occurred on the list, then the spool file will be either missing or empty (depending on the mail system used), which will prevent MailBounce from running. (In short, MailBounce will not run until the next time a message is posted to the list.)

      In order to enable this option, you must configure the your settings as follows:

        use trigger file = 'YES'
        trigger file name = 'mailbounce_trigger_file.txt'
        
      Of course, you may select any appropriate file name for the trigger file. You may also include paths on the file name.

      The last option is DELETE TRIGGER FILE:

        delete trigger file = 'NO'
        
      When set to 'YES', this option will cause your trigger file to be deleted if the file is present and is not empty. (That is, if MailBounce executes on that pass, then it will delete the trigger file. If the file is present but is empty, it will not be deleted.)

    
    use autoresponder rejection file = 'NO'
    autoresponder rejection file name = 'mailbounce_AR_file.txt'
    
      These settings allow you to enable or disable the Autoresponder Rejection File, and select the name of the file. The Autoresponder Rejection File is used to exclude certain types of commonly occurring bounce and non-bounce messages from the unrecognized bounces file. (If you are not exporting unrecognized bounces, then there is no need to use this feature.) For example, Lotus Notes will happily send notifications that a subscriber has received or opened a message that was sent to him; these notifications can now easily be excluded from the unrecognized bounces file by using the Autoresponder Rejection rejection file. Refer to the AR Rejection File documentation for more details on how to configure and use this feature.
    
    use verp = 'NO'
    verp preamble = 'verp-preamble-string-'       ! max 127 chrs
    verp address encoding string = '#'          ! max 19 chrs
    
      If your outbound mail employs Variable Envelope Return Path (VERP) -- i.e., you generate unique outbound e-mails for each recipient, and the MAIL FROM: transaction in the SMTP session provides a unique value that has the individual subscriber address encoded into it -- then you can use this feature to have MailBounce extract and decode the subscriber address.

      The first step in configuring MailBounce for VERP is to set USE VERP to 'YES'. After that, you must tell MailBounce how to parse and decode the VERP address. Let's consider a simple example of a VERP-style address in the Return-Path: header:

        Return-Path: <bounces-web-example#host.mailbounce.biz@mailing.list.net>

      In this example, "web-example@host.mailbounce.biz" is the subscriber address. In order to properly extract that address from the Return-Path: header, MailBounce must be able to identify and remove the preamble (in this case, "bounces-") that precedes the subscriber address, and must also convert the encoding character (in this case, a pound sign "#") back to the standard "@" sign. Setting the following values will accomplish this:

        use verp = 'YES'
        verp preamble = 'bounces-'
        verp address encoding string = '#'
        
      With these settings, MailBounce will extract the address as "web-example@host.mailbounce.biz".

      Other VERP schemes are possible. Currently, MailBounce is not compatible with VERP schemes that encode the subscriber address via a hash or other coding scheme in which the encoded address is not in a "standard" e-mail address format.

      Note that the maximum length of the preamble is 127 characters, and the maximum length of the encoding string is 19 characters. Actual preambles and encoding strings should be considerably shorter than these maximums.

    
    use custom header = 'NO'
    custom header = 'X-Custom-Header:'         ! max 127 chrs
    
      As an addition or as an alternative to VERP, there is the option of using a custom message header that contains the subscriber's address. The custom header may use any format, though nonstandard SMTP headers should begin with "X-" to ensure that they do not collide with standard SMTP headers.

      As an example, suppose your outbound e-mail messages encode each subscriber's address in a custom header as follows:

        X-Subscriber-Address: web-example@host.mailbounce.biz
        
      In this case, you could use the custom header feature as follows:
        use custom header = 'YES'
        custom header = 'X-Subscriber-Address:'
        
      MailBounce will then extract the address "web-example@host.mailbounce.biz" from the header.

      Note that the subscriber's address doesn't necessarily have to appear in an SMTP header for this feature to work; the address merely needs appear in conjunction with a unique string anywhere in the message. For example, suppose you have a message footer similar to the following:

        You are subscribed as <web-example@host.mailbounce.biz>.
        
      In this case, you could use the custom header feature as follows:
        use custom header = 'YES'
        custom header = 'You are subscribed as'
        
      MailBounce will extract the address "web-example@host.mailbounce.biz" from the footer. Angle brackets are not necessary around the address; MailBounce will extract the address as long as any valid delimiter (such as a space) exists between the address and the "trigger" text.

      Note that the e-mail address must appear on the same line as the header string (or whatever string you are using) so that MailBounce can extract the address as soon as it spots the trigger text.

      When selecting trigger text, it is important that the selected text is not likely to occur naturally within an e-mail message.

      The maximum length of the custom header string (not including the recipient's e-mail address) is 127 characters; in most cases, that should be quite sufficient. Be sure to avoid using long strings that might wrap or might cause the e-mail address to be split or truncated by a mail gateway. Shorter strings tend to perform better.

    
    notify when finished = 'NO'
    notify if new server files created = 'NO'
    
      These options will instruct MailBounce to create notification files for the purpose of process synchronization. (For example, if you want your perl wrapper to mail out the server and BCC files only if a new server file has been written.)

      If you set the NOTIFY WHEN FINISHED option to 'YES', then when MailBounce finishes running, it will create a file named "all_finished.txt" in the current default directory. Also, if the "all_finished.txt" file is present in the directory when MailBounce starts up, it will automatically delete the file.

      If you set the NOTIFY IF NEW SERVER FILES CREATED option to 'YES', then if MailBounce updates at least one server file, it will create a file named "server_files_updated.txt" in the current default directory. Also, if the "server_files_updated.txt" file is present in the directory when MailBounce starts up, it will automatically delete the file. If you are running a multi-list configuration, then the notification file will be created if one or more of the server files has been written; this means that there can be one or more server files that were not updated, even though the notification file was created.

      The notification file names are currently fixed, though they can be made user-definable in a future release if there is demand for such a feature.

    MacOS file creator = 'SimpleText'
      Applicable to Macintosh users only. These settings allow you to define the format for any new files that MailBounce creates. Prior releases required you to specify the type and creator codes that you wanted for new files; starting with v6.0, you can optionally specify selected file formats by name, and MailBounce will fill in the details.

        For simplicity, the term "file type" will be used to refer to either the type code or the creator code.

      An example of a file type is shown above. You may use either the MACOS FILE CREATOR setting (shown) or the MACOS FILE TYPE setting. The valid file types are 'SimpleText' (shown above), 'BBEdit', and 'MS Word'. Capitalization does not matter in these settings. As an example, either of the following lines may be used to set the file type to "BBEdit":

        MacOS file creator = 'BBEdit'
        
        MacOS file type = 'BBEdit'
        

      The default file type is 'SimpleText'; thus, if you remove both the MACOS FILE CREATOR and MACOS FILE TYPE settings from your Preferences file, all new files created will be in SimpleText format.

      Note for Mac OS X users: Under Mac OS X, this feature is functional for files with file names of 31 characters or less. Files with longer file names will be created as generic documents; these documents can be opened in TexEdit (or any similar text editor).

      This feature is not applicable to MailBounce for Darwin (i.e., the command-line version of MailBounce for Mac OS X).

    Upgrading:

    • Your Version 2.3 Prefs file (compatible with MailBounce v5.4.x) will be renamed and updated to Version 2.4 (compatible with MailBounce v6.0) the first time you run MailBounce v6.0. If you are upgrading from MailBounce v5.4/v5.4.1, simply drop the new MailBounce version into the folder where your Preferences file is located (on Unix systems, move it into the directory where the previous MailBounce executable is located), and launch the application. Your Preferences file and your Multi-List Configuration file (if any) will be updated automatically the first time that you run MailBounce v6.0. Be sure to customize the new Preferences settings to suit your processing requirements.

    • If you are upgrading from a version of MailBounce prior to v5.4, then you should use the Setup Assistant application (distributed with each MailBounce release) to update your Preferences file.

    MailBounce Legalese (the short form):

    MailBounce Lite is freeware; you are free to use it and redistribute it for free as much as you like. MailBounce Pro is commercial software, and may not be redistributed (in any form) without prior written permission from Smart Mail Solutions, Inc. You may not charge a fee to redistribute MailBounce (in any form), unless you have previously obtained permission from Smart Mail Solutions, Inc., to do so. Please refer to the MailBounce License file for detailed license information.


    MailBounce

    ©
    Vincent Sabio
    *
    Smart Mail Solutions, Inc.
    *

    Columbia, Maryland, USA

    Page last updated: 08 July 2003

    [home]

    [ReadMe]

  • Quick 
Description of MailBounce Download MailBounce Software Upgrading to MailBounce Pro MailBounce Documentation Getting MailBounce Announcements Automated Methods of Handling Bounces from Mailing Lists User Feedback