home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / programs / comms_networking / quickmail / !QUICKMail / History < prev   
Text File  |  1998-08-28  |  25KB  |  499 lines

  1. History
  2. =======
  3.  
  4. This shows you what what I did in various versions of QM, sort of a diary
  5. type thing.
  6.  
  7. It also shows you how it works, in some places - so if you ever find an
  8. error, you may be able to see why - and then, of course, tell me about it :)
  9.  
  10.  
  11. Version 1.00  - comma seperated BCC, CCC and To fields failed
  12. Version 1.01  - the above was fixed :)
  13. Version 1.02  - Noticed a possible bug when the user hadn't entered
  14.                 either a 'To' or a 'cc' field, fixed.
  15.                 Also, noticted that the date format was not correct
  16.                 for emails - Marcel showed it as a "?" 
  17. Version 1.02a - date handler re-written so it now shows them in
  18.                 Marcel and hopefully any other program.. although, it doesn't 
  19.                 do BST or GMT yet.. but hopefully there's no need for these 
  20.                 anyway.
  21.  
  22.                 Also, the mail destination dir has been changed
  23.                 because if you were sending the mail to <someone>@localhost, 
  24.                 then it failed because ANT never got the chance to interpret 
  25.                 the mail before deciding on its destination.
  26.  
  27. Version 1.02b - The program has also undergone some extra code to get
  28.                 it to work under the compiled environment - as it should be 
  29.                 quicker in some areas
  30.  
  31. Version 1.02c - Added support for sending all queued mail at once by 
  32.                 running ANT's program stored within its Bin dir.
  33.                 However, when making my function to read keypresses
  34.                 (y/n) - I think I discovered a bug in BASIC! :-P
  35.                 So, it meant that I had to re-write the function all
  36.                 on one line, instead of using a multiple IF.. THEN..
  37.                 ENDIF procedure.
  38.  
  39. Version 1.03  - The FNGetYn function was repaired, various bits of
  40.                 code tidied up.
  41.  
  42.                 Support for bad email addresses (asks you if you
  43.                 really wish to post to a 'bad' address)                                
  44.                 You *can* now enter multiple addresses in one field
  45.                 with commas seperating them.. you couldn't before,
  46.                 well, you could, but after the first, the rest got 
  47.                 chopped... I have now used my own input routine,
  48.                 which has sorted out the problem.
  49.                 
  50.                 Also, now when you say that you don't wish to post to
  51.                 a 'bad' address, that address gets removed from the
  52.                 partitcular field.
  53.  
  54.                 Wrote 'Mar2Qm' to convert Marcel-made address books
  55.                 into QuickMail format.  
  56.                 Hopefully, I'll write some code to actually use the
  57.                 file in a later version :)
  58.                
  59. Version 1.04 -  Added the support
  60.                 inside QuickMail for alias -> address swapping
  61.                 So, we can now use people's nick names for their
  62.                 addresses - wow! ;-)
  63.  
  64.                 Also, I could make it better though I suppose, cos
  65.                 its not that fast @ tracking the aliases - but then again, 
  66.                 it doesn't store them in memory - which is the main purpose 
  67.                 of the prog (so use a small-memory emailer).  So I
  68.                 will probaly leave FNYank_Address as it is.
  69.                 
  70.                 'Mar2Qm' has also been edited a tad from version 
  71.                 v1.03, to make it work a bit better.
  72.  
  73. Version 1.04a - The Input routine has been re-written so that it now 
  74.                 uses the Delete key's control code, instead of Chr$(8)
  75.                 as this now works properly with !Edit.
  76.  
  77. Version 1.04b - A simple fix - the escape status (of the escape key) is
  78.                 now being reset after you end a line with return.
  79.  
  80.  
  81. Version 1.04c - Added "Do you still wish to post this mail?"
  82.                 mainly for testing because it meant I had to keep
  83.                 deleting the mails manually.
  84.   
  85.                 Also, an attempt at cursor line editing was done -
  86.                 but its not finished yet.. maybe a later version.
  87.  
  88.  
  89. Version 1.05 - The save box ability was added.
  90.  
  91. Version 1.05a - I noticed that if you leave all fields blank, to quit
  92.                 the program .. whenit comes up with "Don't send
  93.                 mail.." it doesn't close any of the open files.
  94.                 So, I've sorted that out by jumping to the error
  95.                 routine which should close them all.
  96.  
  97.                 Also, I noticed that when you don't enter anything
  98.                 for the To: field, it still shows it on screen but
  99.                 obviously, as blank.  This has been sorted now.
  100.                 
  101. Version 1.05b - Changed a bit of text, added a small bit of code to
  102.                 remove "Reading Xheaders" and all that rubbish after
  103.                 it they had been loaded.
  104.  
  105.  
  106. Version 1.05b.1 - If you used commas in the subject line, it would
  107.                   miss the rest of the text off after the first
  108.                   comma. I've now swapped BASIC's INPUT for my own
  109.                   input routine which I use with everything else.              
  110.  
  111. Version 1.05c  - Got bored with 1.05 versions - decided to make it 
  112.                  1.06 ;-)
  113.  
  114.  
  115. Version 1.06   - I noticed that if you press escape whilst you are
  116.                  being asked for the addresses, it keeps the next
  117.                  input line on the /same/ line.
  118.                  (ie. To: Cc: BCC:  etc )
  119.                  
  120.                  This has now been rectified.  Also, I have added a
  121.                  function to strip the control codes from any text
  122.                  that you enter into the address fields.. this is
  123.                  because for instance, my code will not believe that
  124.                  you have *not* entered an address, if you pressed 
  125.                  escape.. because escape /is/ a control code.. so the
  126.                  string my code is checking isn't blank.
  127.                  
  128.                  It should not cause any problems anyway, since you
  129.                  shouldn't have control codes in email addresses.          
  130.  
  131. Version 1.06a -  I was reading ANT's chat mailing list, and somebody
  132.                  said that the mail software should remove single
  133.                  dots on a line.. as SMTP servers took this to mean
  134.                  the end of the mail.  I had forgotten about this,
  135.                  so, now, if QM comes accross such a line, it will
  136.                  add 3 spaces after it.. which *should* solve the
  137.                  problem.
  138.  
  139.  
  140. Version 1.07  -  Added URL grabber code to get address from an
  141.                  external helper, ie !Fresco.
  142.                  Also, made the sig seperator have a space after
  143.                  the two dashes - as this is how sig seps are 
  144.                  supposed to work.                                      
  145.  
  146. Version 1.07.1 - Tells you what the To field is, if set by an
  147.                  external app, and doesn't tell you to enter
  148.                  the to, cc and bcc fields - there's no point!
  149.  
  150.                  Also, the ExtURLSet and GrabURL have been sped up.                                  
  151.  
  152.                  When mail addresses come from an external app,
  153.                  which have a prefix of MailTo:  then this is
  154.                  stripped off by QuickMail, internally.
  155.  
  156.  
  157.  
  158.  
  159. Version 2.00   - * Not released *  
  160.  
  161.                  !QMConfig created by Andrew Berry.  He updated the
  162.                  config file, which meant changing both QM's code, and also
  163.                  "ExtURLSet".  Hence, old configs no longer work.
  164.               
  165.                  QM Now works inside the !Scrap directory, and uses
  166.                  its own directory to store mails in.  This was because I *was*
  167.                  storing them inside ANT's own dir, whilst they were being composed. 
  168.                  Which, however, caused problems.  These problems
  169.                  should now be rectified.
  170.    
  171.                  Moved Binary programs (ExtURLSet, GrabURL,
  172.                  MailDelivr, Mar2QM) into a 'Resources' directory, to
  173.                  avoid clutter of the dir.  The programs involved
  174.                  were also edited slightly to cope with the change.
  175.                  
  176.                  Mar2QM has now been sped up dramatically, not that
  177.                  its one of the most used parts of the program, but 
  178.                  I felt like it :)
  179.  
  180.                  *All* 'User' files have now been moved into a 'User'
  181.                  directory, to avoid cluttering.                                 
  182.  
  183.  
  184.                                                    
  185. Version  2.00.1  - * Not released *
  186.                  QuickMail,Mar2Qm and ConfigRead have had the
  187.                  hourglass loading indication added to file-loading
  188.                  operations.
  189.               
  190.                  Mar2Qm has been edited a small bit to display a
  191.                  version number, and also not display all of the
  192.                  addresses down the screen, but in the same place
  193.                  (similar to the *checkmap command).  It also now 
  194.                  performs a Wimp_CommandWindow,-1 so it returns to
  195.                  the desktop after conversion - for easier
  196.                  collaberation with !QMconfig.
  197.                  
  198.                  History list moved to seperate file (ie this one)                                                                    
  199.                  
  200.  
  201.  
  202. Version  2.02    * Not released *
  203.                  A few things tidied up.  Final release(??!)                 
  204.  
  205. Version  2.03    * Not released *
  206.                  Can't remember.  Probably something trivial :)
  207.  
  208.  
  209. Version  2.04    * Not released *
  210.                  Added extra user-file commands like the alteration
  211.                  of the host name, and locations of sent box etc.
  212.                  Am still awaiting a new version of QMConfig from
  213.                  Andrew to cope with the changes.
  214.  
  215.  
  216. Version  2.05    * Not released *
  217.  
  218.                  Changed the X-Headers file a bit to demonstrate
  219.                  things to the user.. eg, the Priority: Urgent
  220.                  and explained it.
  221.                  Also, noticed that adding spaces to the X-headers
  222.                  file on their own line, adds spaces into the mail !
  223.                  Any blank lines in the file are now ignored by Qm.
  224.                  
  225.                  Removed the code which asks you whether you want ANT
  226.                  to start sending the queued mail now.  This is
  227.                  because it obviously won't work with other suites,
  228.                  and also because ANT may not have processed the mail
  229.                  in time, before it actually *sends* mail to the server.
  230.                  And, another reason - it just annoyed me ;)
  231.                  
  232.                  Made QM stop complaining about 'localhost' and 'loopback' 
  233.                  addresses being 'bad', as they are actually feasible
  234.                  under ANT.
  235.                  
  236.                  Added a few '(y/n)' texts after key press prompts.
  237.                  
  238.                  Re-structured the !Help file so that it's in
  239.                  chapters.
  240.  
  241.                  BASCompressed the !RunImage to save disk space and
  242.                  memory.  Also, it runs faster (I think)
  243.                  
  244. Version 2.06     Re-wrote handling of X-headers file.  It no longer
  245.                  loads them into a memory block which was setup for
  246.                  20 lines no matter how many you had.
  247.                  This new code is called only when the mail file is
  248.                  being created - and therefore, won't tell you its
  249.                  loading the file.                 
  250.                  Now, all that happens, is that, if the file exists,
  251.                  it is loaded, checked for various bits, then the headers 
  252.                  written into the new file.
  253.                  
  254.                  This means that you can effectivley have unlimited
  255.                  headers, which is much better, esp since it saves
  256.                  memory :)
  257.                  I still recommend a minimal amount though.
  258.                  
  259.                  
  260.                  Wrote CSV2Qm to convert CSV files into Qm format
  261.                  address books.  Well, it was basically Mar2Qm
  262.                  rebadged and with some different parsing code.
  263.                  I decided to just make Mar2Qm recognise both Marcel
  264.                  and CSV file-types to make supporting other suites
  265.                  easier.
  266.                  
  267.                  Wrote Qm2CSV to convert a QM mail file into a CSV
  268.                  format file.
  269.                  Syntax: *Qm2CSV <output filename for CSV creation>
  270.                  
  271.                  Wrote ListAdrs to list the QuickMail address book to
  272.                  screen.  Pressing 'P' pauses the output.
  273.                  
  274.                  Edited ConfigRead to be a tad quicker at reading the
  275.                  config file.
  276.                  
  277. Version 2.07     Changed the length of Message-ID so that it is now
  278.                  much smaller.  Apparently, Pipex's servers get upset
  279.                  (and don't send) about mails with long message-Ids.
  280.                  I haven't had anybody report this with QuickMail,
  281.                  but saw it in a newsgroup - so just changed the
  282.                  message Id create routine a touch.
  283.                  
  284.  
  285.                  'Commissioned' Ally to write !QMC.  Well, he wanted
  286.                  to beta test it - so I told him to write a config 
  287.                  app at the same time <laugh>
  288.                  
  289.                  Edited Mar2QM a bit so that it would cope with CSV
  290.                  files a bit better.
  291.                  
  292.                  Edited ListAdrs a tad to make it easier to check
  293.                  whether CSV files have been parsed correctly.
  294.                  
  295. Version 2.08     Nothing major - no bug fixes.
  296.                  Simply changed;
  297.                   * The message ID text if there is no hostname to be
  298.                     found, from localhost.lch to simply, localhost
  299.                   * Added some useful messages about closing the task
  300.                     window to finish the session - as it may have
  301.                     been confusing for some people.
  302.                   * Changed my email address from MoZes@ccl4.org to
  303.                     MoZes@ccL4.org - people seem to think ccl4 is
  304.                     cc14.
  305.                     
  306.                   I think this may finally be the final version.                                                                                                             
  307.                   
  308. Version 2.09    Whooops!
  309.                 I noticed whilst removing my From: address from the
  310.                 config file, that QM didn't detect the lack of it !!
  311.                 This is now fixed.
  312.                 Also, major whoops!!  I never added from the very
  313.                 first version the actual CODE support for REply-To:
  314.                 So, you could set it, but the mail never got it
  315.                 written to it!!  This is now fixed as well.
  316.                 It also tells you you have a Reply-To address set when
  317.                 you compose the mail, if it *is* set.
  318.                 QM also doesn't default it to the From: address if
  319.                 you don't have a reply-to set.
  320.  
  321. Version 2.10    Added support for >79 characters per line length.  It
  322.                 can now be changed in the config file by hand.
  323.                 It has a limit of 250 characters though - but thats
  324.                 too much for one sentance anyway since it should really only
  325.                 do for upto 80 chars in the RFC.
  326.                 
  327. Version 2.11    Made it check properly whether it had managed to
  328.                 delete the composed mail or not.  (so it now checks for errors and
  329.                 wotnot properly)
  330.                 Also, it now reports 'QUICKMail' as its task, whilst
  331.                 running.      
  332.                 
  333. Version 2.12    Now copes with CGIish type MailTo: URL formats which people
  334.                 seem to be putting in their e-mail URLs on homepages.
  335.                 It will decode this type sucessfully;
  336.                 MailTo:whoever@domain.org?subject=whatever subject
  337.                 the mailto: or ?subject= part do not mind which case they are
  338.                 in (both upper/lower or a combination of both are catered
  339.                 for)     
  340.  
  341.                 Dodgy MailTo:'s are also coped with, eg a space in the e-mail
  342.                 like Mo Zes@ccL4.org   Of course, nobody should do this, but
  343.                 perhaps it may get messed up in transport from the app to QM,
  344.                 so the code's there anyway.
  345.                 
  346.                 The code which generates a sentbox, and opens the old
  347.                 sentbox has been modified so that it can trap errors before
  348.                 it tries to write directly to the file.
  349.                 It first does a *Access etc wr on the file to make sure that
  350.                 we are able to modify the file, which we need to be able to
  351.                 do.  If an error occurs at this stage (we trap the errors
  352.                 silently so they don't cause a fatal error in QM which gets to the main error
  353.                 handler, hence stopping mail composition), we tell the user
  354.                 that we can't use the sentbox specified.
  355.                 It then *CREATEs a new file if one does not exist, and
  356.                 assuming there was no error from the first *ACCESS.  If this goes okay, then
  357.                 we will be able to use the sentbox.  Again, if an error occurs then
  358.                 we silently trap it, and tell the user.
  359.  
  360. Version 2.13    * Not released *
  361.                 SMTP direct sending implemented via will-l's "Jess" Agent
  362.                 New command added to the config file to support the mail server
  363.                 which SMTP sending will use.
  364.                 Got to remember to ask Ally to edit !QMC to incoporate the
  365.                 changes.
  366.                 Added a Built date into the X-Mailer headers for e-mails
  367.                 just for human curiosity.
  368.                 
  369.                 Also updated the !Help file to bring in the SMTP changes,
  370.                 and other little changes which needed doing.
  371.                 
  372. Version 2.13a   * Not released *
  373.                 Simply made it state which SMTP server you had specified when
  374.                 asking you if you wanted to send locally or SMTP.                 
  375.                 Made it easier to test because I wanted to know which server
  376.                 I was using - when I was testing it on as many as I could.
  377.                 Plus its useful to know which one you have selected.
  378.                 
  379. Version 2.14    * Not released *
  380.                 The BST/GMT time zone has finally been added.
  381.                 If its BST, it will add "+0100 (BST)" to the end of the
  382.                 Date: field.  If GMT, then "+0000 (GMT)".
  383.                                 
  384.                 Also, the information available ie Subject: when entering the
  385.                 e-mail, has had the Date: field added as well.
  386.                 
  387.                 Ally got around to redoing !QMC as well, so it now
  388.                 encorporates the changes I needed - the mail server field etc.
  389.                 
  390. Version 2.15    * Not released *
  391.                 Comissioned Ally to write a better SMTP sending agent as Jess
  392.                 was having problems, and I couldn't be bothered to wait for Will to fix it
  393.                 else I probably would have scrapped the idea totally.  The interface
  394.                 "protocol" has changed slightly from version 2.14 so it uses different
  395.                 variables which Ally's new prog will use.  Otherwise, the actual interface
  396.                 between QM and the external agent is identical.     
  397.                 
  398. Version 2.15a   * Not released *
  399.                 Noticed that when pressing the "Enter" key, it had odd
  400.                 effects.  Its supposed to be the same as pressing the "Return" key - this 
  401.                 *is* now the effect.   
  402.                 
  403.                 Modified Ally's SMTPSend program to work with QM myself.        
  404.                 
  405.                 Modified QuickMail itself.  It no longer produces &D after
  406.                 the headers as this really messes up direct SMTP sending.
  407.                 It only produces &d on the final "dot" (to denote end of
  408.                 mail).  Everything still works fine with ANT suite.
  409.                 
  410.                 Changed the loading format of SMTPSender, now uses sys vars.
  411.                 QM unsets them after its finished sending.
  412.                 
  413.                 This is the end of this program now, I've had enough.
  414.                 
  415. Version 2.16    * Not released *
  416.                 Okay, I lied.  I thought I should make the mail sending multi
  417.                 tasking  - mainly because the server I use sometimes takes at *least* 5
  418.                 seconds to connect .. and hogging the computer for at *least*
  419.                 10 was unacceptable.
  420.                 So, I've added another option in the config file called
  421.                 SMTP.MultiTask:
  422.                 By default, it is switched to "no" so it doesn't multi task
  423.                 when sending mail to the specified SMTP server, this is
  424.                 because it will use up another 28k to open a task window and run itself in
  425.                 it, which may not be great for small memory machines. 
  426.                 However, I *have* reduced the wimp slot for QM itself to 28k, where it was
  427.                 previously 42k.
  428.                 Making multi tasking SMTP sending also means you can use it
  429.                 on your local machine with FreeSMTP - which is essential for peeps who use
  430.                 it!
  431.  
  432. Version 2.17    * Not released *
  433.                 Added the Always.SMTPSend feature of the config file into
  434.                 the program because when Gerph was testing it, he doesn't
  435.                 have ANT - so couldn't do anything else anyway.
  436.                 
  437.                 Changed "Cc:" and "Bcc:" to "CC:" and "BCC:" because thats
  438.                 what case they are supposed to be in.
  439.  
  440.                 Changed QM's config file variable to be QuickMail$ConfigFile
  441.                 I edited QMC and ConfigRead accordingly.
  442.                 This is so that we can use the Choices: directory on RPC
  443.                 !Boots.  Just got to write the prog to find out where the
  444.                 file is.
  445.                 
  446.                 Changed the display so that Date: and Subject: came first.
  447.                 
  448. Version 2.18    * Released as a Beta *
  449.                 Made QM now use Message files for most of its messages.  The
  450.                 SMTPsender doesn't use them though.                
  451.                 
  452.                 Fixed a bug in that when you opt to remove a bad address
  453.                 from the BCC field, it didn't actually remove it when it printed it on
  454.                 *Screen* - it would however not actually put the bad email address in the
  455.                 composed file.  I simply forgot to switch the variable, which is no longer
  456.                 needed after the headers have been built, for the variable which has been
  457.                 "swapped" for either the alias, or have a bad address removed from it.
  458.                 
  459.                 When inputting subject, To, Cc etc - they're now all lined
  460.                 up.
  461.                 
  462. Version 2.19    
  463.                 Turned off the BST/GMT as default. Option now in config file.
  464.                 Made SMTPSend time out after a certain period of time.  The
  465.                 amount of time is stored in the "UserConfig" file.
  466.                 
  467.                 Stopped QM from putting spaces before it writes mail to the
  468.                 sentbox, only if the sentbox is of zero bytes (ie QM just created it)
  469.                 
  470. Version 2.20  
  471.                 Added a way of having random taglines appended to the
  472.                 signature. Look in !QuickMail.resources.rndsig for the
  473.                 answer, and edit the UserConfig file manually.
  474.                 
  475. Version 2.21    The SMTP agent would not close the mail file when it returned
  476.                 a server error message, so if you discarded the composition once 
  477.                 control returned to QuickMail, QM would crash with a file open error.  
  478.                 Now fixed. 
  479.                 
  480.                 Changed Mail date handler to use the proper SWI instead of
  481.                 my own code, therefore now does all time zones.
  482.                 The config option in the config file can still be used to
  483.                 specify whether you want it to say the time zone (eg BST/GMT) or not. 
  484.                 The config option has now changed to Use.TimeZone however, to
  485.                 reflect the fact it is *any* time zone, not just BST or GMT.
  486.                 
  487. Version 2.22    Instead of writing the FCC folder as we go along, we now
  488.                 write it only when the user says they want to post the mail.                
  489.                 This means we no longer have a copy of the mail if the user
  490.                 says they don't want to post the mail, which was quite annoying.
  491.               
  492.                 Changed Message file to have an extra entry to say it was
  493.                 writing the FCC folder.
  494.                                 
  495.                 Gave QM my random tag generator which I use for ANT.  It can
  496.                 support random quotes of the day if the data is prefixed
  497.                 with  &
  498.                 
  499.