Versions:


This file is laid out in incremental order. To see what's new in the version
you have, hit Ctrl-CursorDown and read it from the final entry...



1.01  * Initial code, saved out messages.



1.02  * Option to strip binaries (UUcode), sigs and headers.
      
      * Can handle multiple users, password protected.

      * RELEASE VERSION.



1.03  * Fixed bug where Standard mailbox HAD to be selected.
      
      * Fixed bug where a "." in the saved filename caused an error. Now
        replaces "." with "_".  Also replaces "/", "#", "$", "*" and "%" for
        good measure. :-)
      
      * Now accepts any filename you supply (and does not keep reverting to
        your username). Drag save code tidied up.
      
      * Still does not handle MIME attachments. Just made one, and... I'll
        have to see how DTposty recognises a MIME. For Argonet users,
        switching off signatures will lose ALL of the attachments.



1.04  * Drew up the specification and details for the preprocessor system.
        Look in Templates for a sneak preview.
      
      * Added more comments to the code to make it easier for external
        people to follow.
      
      * Added a trap for more than ten user definitions. Unlikely, but there
        is always somebody... :-)



1.05  * Fixed bug in !Run file where it would set up <PostyUser$Dir>
        incorrectly.
      
      * Tweaked and twiddled, ready for an update on argonet binaries.
      
      = RELEASE VERSION.
      


1.06  * Created the kill-file, bit-bucket and auto-ack. Does everything except
        substitute a different "Reply-To:" address.
      
      = RELEASE VERSION.



1.07  * Auto-ack will no longer Ack messages:
          From "null.user" (usually Forms)
          From "support@argonet"
          Subject "Web space" (from TIMM)

      * Forms are also extracted into ..Data.Forms so my form interpreter can
        deal with them.

      = RELEASE VERSION (WWW site only).



1.08  * Moved 'terminator' text into program.

      * Amended program version/date so it is all from one variable. ;-)

      * Think I've fixed the problem of returning the last line of a file
        twice.

      * Fixed the 'To:' string detection picking up on 'In-Reply-To:. Ensures
        first character is a 'T'.

      = RELEASE VERSION (WWW site only) including early "!FormDec".



1.09  * Lots of twiddles!

      * "From name" decoder twiddled so it will return ONLY the email address
        from input in the form:
          Richard Murray <rmurray@argonet.co.uk>
        or:
          rmurray@argonet.co.uk (Richard Murray)
        or:
          rmurray@argonet.co.uk

        This should stop any 'bad mail' problems.

      * "To name" decoder strips '<' and '>' if present. Messages from Molly
        contained them in the TO field.

        Well...she /was/ using a MicroSoft mailer!

      * Check to make sure file Email is zero length 'improved' so it actually
        looks at the file size (don't ask!).

      * Sets the 'Email' file type back to text.

      * Now deletes the "angela" file when preprocess finished, and will
        bluntly refuse to preprocess until file removed. It's a kind of
        insurance for when crashes happen (what, in MY code!? <grin> ).

      * Each different 'To:' user can have their own custom signoff. Simply
        create a file in the "!FetchMail.Data.Responses.signoffs" directory
        with a name according to the following rules:
          Scanning left to right through the email name, stop at "." or "@"
          or after ten characters - whichever occurs first.

        For example:
          rmurray@argonet.co.uk         "rmurray"
          claire.danes@argonet.co.uk    "claire"
          reallylongname@argonet.co.uk  "reallylong"

      * There is now a log file ("__plf__") created. This is renewed every
        time FetchMail is run in preprocessor mode.

        The numbers down the left are two-digit groupings in the form:
          DDMMCCYYHHMMSS
        which stand for Day, Month, Century, Year, Hour, Minute and Second.

      * Try passing "-btr" (lowercase) as the parameter. ;^)

      = RELEASE VERSION.
      


1.10  * Will now skip messages originating from FetchMail, to prevent ACKing
        an ACK of an ACK... :-)

      * Now tidies up properly after 'no new email' condition.
      
      * Preprocessor now polls, so you can link it into some "after download"
        event. Mine is now tided to "NewMail" when it says
        "Download complete".
     
      * Preprocessor shows a large status window with a little bar advancing
        as the mail is processed. Just a little widget to assure you it has
        not crashed. :-)
      
      * If the subject begins "!! ", the message will be copied out to a
        special file. More details to follow when the additional software
        has been written.
      
      = RELEASE VERSION (WWW site only).
      


1.11  * Added more lyrics.

      * Changed acknowledgement subjects to begin "Ack: ".
      
      * Changed detection of ACKs to use "Ack: " in subject, should now work
        with MailStrip.
      
      * Now maintains a list of 'known' message IDs, so if you fetch mail
        several times without reading it, it won't process the older messages
        each time.
        The Message IDs are cleared when we come across a blank email file or
        no email file.

      * That "!! " thing mentioned previously - it is for a list server type
        of thing. I'm currently in the process of writing a listserver with
        auto-uucode features and suchlike. :-)

      = RELEASE VERSION (WWW site only).



1.12  * Tidied signoff handler. It will now look for a "default" signoff
        before warning of impending doom.

      * New configuration (resources.config.dont-ack) to allow you to choose
        names to NOT receive auto-ack. Useful for listservers and people fed
        up with it.



1.13  # In good BudgieSoft tradition, that number between '12' and '14' is
        skipped.

        What makes this action exceedingly peculiar is that that same number
        is my lucky number. ;^)



1.14  * Added more Lyrics.

      * Made FetchMail able to 'handle' zero-length mailboxes.



1.15  * Added trapping to help pick up invalid addresses. Must be >0
        characters and contain an '@'. This should fix it sending
        ACKs to "No FROM address found!"...

      * Oh, and lyrics have a menu. Hehe...



1.16  * Phew! Multiuser support actually worked better than I thought! :-)

      * Now, if it cannot open an input file it will moan to you about it
        (may not exist yet) and it will tidy up properly instead of leaving
        a zero-byte 'Data' file.

      * Twiddled with the mail creator. Now outputs stuff almost identical to
        the output of DTPosty, so should work!

      * Mail address searcher now looks for "," seperated names and will
        extract and use the first name found (I got this from the Open
        University server).

      * Proper UUcode searching. Looks for "begin" on left, followed by a
        space and then three digits. No longer assumes "begin 644".

      * Should now also strip MIME attachments. Goes between the
        "Content-Transfer-Encoding:" and the "--", so will leave some
        sticky residue (which can be removed by wiping gently with a cotton
        wool bud soaked in isopropyl alcohol).

        DOES NOT use boundary markers. T'was a pain in the butt parsing
        them. :-)

      * Added another song. :-)
        Removed CLI parameters to specific songs, pass the CLI parameter
        for the menu.



1.20  * THE PREPROCESSOR HAS *TOTALLY* CHANGED FROM THIS POINT ONWARDS...
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      * Removed ACK/kill/bounce functionality.

      * Added basic user preview system. Will only kill or copy at this
        time.



1.21  * Added 'View headers' option.

      * Scanner now counts up replies, acks, adverts and binaries. This is
        reflected in the message status window (the one that asks if you wish
        to view your email).
        Adverts are determined by an "X-Advertisement" line in the header.
        Not all spams carry this, but some do.

      * Options at the bottom now do their prescribed functions. If you OKAY
        a message, it will be added to the list of known users and noted as
        OKAY. If you REJECT a message, it will be automatically added to the
        list as REJECT ALWAYS and will be automatically rejected. All other
        options are done on a one-time basis (to always bounce mail from a
        certain user, set it up in the UserActions file).



1.22  * Will skip recognised message IDs so you don't have to okay the same
        message multiple times.

      * Outgoing automated messages are settyped to '&FFF' (Text).
        Additionally the headers have been altered - in particular the format
        of the date which should support UDT offsets for GMT/BST, and other
        timezones by name.

      * Bounce filters X-POP3-Mailbox name.

      * Reject filters X-POP3-Mailbox name and includes incoming signature.

      * Message view now compares messages received with the UserActions
        settings and takes action if appropriate.

      * Removed old (unused) preprocessor code, saving 6K in the executable.

      * Stripping signature will NOT automatically enable stripping of
        binaries. However the behaviour will be the same, if strip sig then
        ANYTHING below the sig will be removed.

      * Now compiles with optimisations for multiple register loading, cse
        and crossjumping. Also compiled with stack and memory access checks.

      * Help text available. Pass as command-line parameter one of the usual
        help options ("-?", "/help" etc).


1.23  * Changed "Reject" to use Envelope-To address (instead of To).

      * New message window now displays the Envelope-To address.

      * New message window has option to view the current message in its
        entirety.

      * Altered time in auto-replied messages to the format:
          %W3, %DY %M3 %CE%YR %24:%MI:%SE ##
        where ## is a timezone marker, which translates to stuff like:
          Sun, 30 Nov 1997 12:34:56 +0000
 
        Previously was in form: 'Sun 30 Nov 1997 (12:34:56 +0000)'
        Does anybody know the proper time format?

      * Upon OS error or stack overflow, FetchMail will display the 'Blue
        Screen of Death' and coredump. Then it'll exit back to the DeskTop.
        Your email will be in the file "angela" within !FetchMail, you may
        need to fiddle the "MessageIDs" file (within !FetchMail.Data) to 'see'
        part-scanned email. The file "!COREDUMP!" is for debugging purposes.

      * If you toggle the settings window to full size, you will see four
        additional icons:
           Raise signal 7 (stack overflow)
             Will cause a stack overflow error to be generated.
           Raise signal 10 (OS error)
             Will cause an (undefined) OS error to be generated.
           Enter recursive loop to cause stack overflow
             Will enter a recursive loop until you run out of stack space.
             Note that this can cause massive files (typically the amount of
             free memory at time of execution) so would be, erm, 'fun' on
             64Mb RiscPCs...
           Divide by zero
             Will cause a divide by zero to occur. Note that this error is
             NOT trapped with the BSoD.
        You will be asked to press a key when clicking to confirm your choice.
        As you are asking FetchMail to crash (!), don't flame me if something
        really horrible happens.


1.24  * Rich Goodwin sent out an email Christmas card (thank you!) and
        FetchMail promptly crashed.
        I took apart the message_copy() routine to see why it had only part
        copied the previous message (a UUcode from Glenn Richards) and it
        took a while before I remembered that output was buffered. Duh!
        Anyhow, looking in the incoming email file, I notice that the 'to:'
        address for the Christmas card is 310 characters long.
        So now it can handle:
          To:          1024 characters  (was 80)
          Envelope-To:  128 characters  (was 80)
          From:         512 characters  (was 80)
          Subject:      256 characters  (was 80)
          Date:          40 characters  (was 40)
          Message-ID:    80 characters  (was 60)

      * bounce_message() and reject_message() hack the required fields to
        80 characters using the hatchett method...

      * Signal handler expanded to handle all signals that C recognises:
          SIGABRT    (abort)
          SIGFPE     (arithmetic exception)
          SIGILL     (illegal instruction)
          SIGINT     (interrupt request)
          SIGSEGV    (bad emory access)
          SIGTERM    (termination request)
          SIGSTAK    (stack overflow)
          SIGOSERROR (OS error)
        The final two were already trapped. The remaining six are new.


1.25  * Added widget to open FetchMail WWW page using URI handler.

      * Online documentation created.






1.30  * *********************************************************************
      * FETCHMAIL SPLIT INTO TWO SEPERATE PROGRAMS: FETCHMAIL AND PREPROCESS.
      * *********************************************************************

      * Clicking 'Cancel' in fetchmail window no longer quits!

      * Templates and sprites moved to "!FetchMail.Resources".

      * New format options file.

      * Apparently the latest versions of DTPosty use different paths;
        so look inside '!Run' for details of how to change the paths...

      * Errors/warnings tidied up and made friendlier.

      * The 'Settings' window now works, to configure FetchMail and the
        preprocessor.



1.31  * Corrected a bug where FetchMail would /ALWAYS/ fetch the standard
        mailbox.

      * Changed the Hourglass LED meanings. Upper LED lit means "reading".
        Lower LED lit means "writing".

      * You can now decrypt a mail file by simply dragging it to the
        fetchmail iconbar icon. Then save in the normal way, and off it
        goes!



1.40  * Kept on bombing out on me. Debug revealed a possible bug in the
        file handling routines (where have we heard /that/ before?). So
        changed the code to use DeskLib's File_ routines. Works good now.



1.41  * Can now handle up to 40 mailboxes.

      * Fixed EOF detection. Won't give errors about type byte 00 when
        loading.

      * Hyperlink URL to my WWW site updated to the correct URL.

      * Command line parameters removed, except "-preprocess" which is there
        to cater for old software.

      * Error cause code removed (the stuff that said like "Cause a stack
        overflow").

      * Removed unused functions.



1.41x * Minor tweaks and tidy-ups for source code release, July 2007.
