home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ARM Club 3
/
TheARMClub_PDCD3.iso
/
programs
/
comms_networking
/
quickmail
/
!QUICKMail
/
History
< prev
Wrap
Text File
|
1998-08-28
|
25KB
|
499 lines
History
=======
This shows you what what I did in various versions of QM, sort of a diary
type thing.
It also shows you how it works, in some places - so if you ever find an
error, you may be able to see why - and then, of course, tell me about it :)
Version 1.00 - comma seperated BCC, CCC and To fields failed
Version 1.01 - the above was fixed :)
Version 1.02 - Noticed a possible bug when the user hadn't entered
either a 'To' or a 'cc' field, fixed.
Also, noticted that the date format was not correct
for emails - Marcel showed it as a "?"
Version 1.02a - date handler re-written so it now shows them in
Marcel and hopefully any other program.. although, it doesn't
do BST or GMT yet.. but hopefully there's no need for these
anyway.
Also, the mail destination dir has been changed
because if you were sending the mail to <someone>@localhost,
then it failed because ANT never got the chance to interpret
the mail before deciding on its destination.
Version 1.02b - The program has also undergone some extra code to get
it to work under the compiled environment - as it should be
quicker in some areas
Version 1.02c - Added support for sending all queued mail at once by
running ANT's program stored within its Bin dir.
However, when making my function to read keypresses
(y/n) - I think I discovered a bug in BASIC! :-P
So, it meant that I had to re-write the function all
on one line, instead of using a multiple IF.. THEN..
ENDIF procedure.
Version 1.03 - The FNGetYn function was repaired, various bits of
code tidied up.
Support for bad email addresses (asks you if you
really wish to post to a 'bad' address)
You *can* now enter multiple addresses in one field
with commas seperating them.. you couldn't before,
well, you could, but after the first, the rest got
chopped... I have now used my own input routine,
which has sorted out the problem.
Also, now when you say that you don't wish to post to
a 'bad' address, that address gets removed from the
partitcular field.
Wrote 'Mar2Qm' to convert Marcel-made address books
into QuickMail format.
Hopefully, I'll write some code to actually use the
file in a later version :)
Version 1.04 - Added the support
inside QuickMail for alias -> address swapping
So, we can now use people's nick names for their
addresses - wow! ;-)
Also, I could make it better though I suppose, cos
its not that fast @ tracking the aliases - but then again,
it doesn't store them in memory - which is the main purpose
of the prog (so use a small-memory emailer). So I
will probaly leave FNYank_Address as it is.
'Mar2Qm' has also been edited a tad from version
v1.03, to make it work a bit better.
Version 1.04a - The Input routine has been re-written so that it now
uses the Delete key's control code, instead of Chr$(8)
as this now works properly with !Edit.
Version 1.04b - A simple fix - the escape status (of the escape key) is
now being reset after you end a line with return.
Version 1.04c - Added "Do you still wish to post this mail?"
mainly for testing because it meant I had to keep
deleting the mails manually.
Also, an attempt at cursor line editing was done -
but its not finished yet.. maybe a later version.
Version 1.05 - The save box ability was added.
Version 1.05a - I noticed that if you leave all fields blank, to quit
the program .. whenit comes up with "Don't send
mail.." it doesn't close any of the open files.
So, I've sorted that out by jumping to the error
routine which should close them all.
Also, I noticed that when you don't enter anything
for the To: field, it still shows it on screen but
obviously, as blank. This has been sorted now.
Version 1.05b - Changed a bit of text, added a small bit of code to
remove "Reading Xheaders" and all that rubbish after
it they had been loaded.
Version 1.05b.1 - If you used commas in the subject line, it would
miss the rest of the text off after the first
comma. I've now swapped BASIC's INPUT for my own
input routine which I use with everything else.
Version 1.05c - Got bored with 1.05 versions - decided to make it
1.06 ;-)
Version 1.06 - I noticed that if you press escape whilst you are
being asked for the addresses, it keeps the next
input line on the /same/ line.
(ie. To: Cc: BCC: etc )
This has now been rectified. Also, I have added a
function to strip the control codes from any text
that you enter into the address fields.. this is
because for instance, my code will not believe that
you have *not* entered an address, if you pressed
escape.. because escape /is/ a control code.. so the
string my code is checking isn't blank.
It should not cause any problems anyway, since you
shouldn't have control codes in email addresses.
Version 1.06a - I was reading ANT's chat mailing list, and somebody
said that the mail software should remove single
dots on a line.. as SMTP servers took this to mean
the end of the mail. I had forgotten about this,
so, now, if QM comes accross such a line, it will
add 3 spaces after it.. which *should* solve the
problem.
Version 1.07 - Added URL grabber code to get address from an
external helper, ie !Fresco.
Also, made the sig seperator have a space after
the two dashes - as this is how sig seps are
supposed to work.
Version 1.07.1 - Tells you what the To field is, if set by an
external app, and doesn't tell you to enter
the to, cc and bcc fields - there's no point!
Also, the ExtURLSet and GrabURL have been sped up.
When mail addresses come from an external app,
which have a prefix of MailTo: then this is
stripped off by QuickMail, internally.
Version 2.00 - * Not released *
!QMConfig created by Andrew Berry. He updated the
config file, which meant changing both QM's code, and also
"ExtURLSet". Hence, old configs no longer work.
QM Now works inside the !Scrap directory, and uses
its own directory to store mails in. This was because I *was*
storing them inside ANT's own dir, whilst they were being composed.
Which, however, caused problems. These problems
should now be rectified.
Moved Binary programs (ExtURLSet, GrabURL,
MailDelivr, Mar2QM) into a 'Resources' directory, to
avoid clutter of the dir. The programs involved
were also edited slightly to cope with the change.
Mar2QM has now been sped up dramatically, not that
its one of the most used parts of the program, but
I felt like it :)
*All* 'User' files have now been moved into a 'User'
directory, to avoid cluttering.
Version 2.00.1 - * Not released *
QuickMail,Mar2Qm and ConfigRead have had the
hourglass loading indication added to file-loading
operations.
Mar2Qm has been edited a small bit to display a
version number, and also not display all of the
addresses down the screen, but in the same place
(similar to the *checkmap command). It also now
performs a Wimp_CommandWindow,-1 so it returns to
the desktop after conversion - for easier
collaberation with !QMconfig.
History list moved to seperate file (ie this one)
Version 2.02 * Not released *
A few things tidied up. Final release(??!)
Version 2.03 * Not released *
Can't remember. Probably something trivial :)
Version 2.04 * Not released *
Added extra user-file commands like the alteration
of the host name, and locations of sent box etc.
Am still awaiting a new version of QMConfig from
Andrew to cope with the changes.
Version 2.05 * Not released *
Changed the X-Headers file a bit to demonstrate
things to the user.. eg, the Priority: Urgent
and explained it.
Also, noticed that adding spaces to the X-headers
file on their own line, adds spaces into the mail !
Any blank lines in the file are now ignored by Qm.
Removed the code which asks you whether you want ANT
to start sending the queued mail now. This is
because it obviously won't work with other suites,
and also because ANT may not have processed the mail
in time, before it actually *sends* mail to the server.
And, another reason - it just annoyed me ;)
Made QM stop complaining about 'localhost' and 'loopback'
addresses being 'bad', as they are actually feasible
under ANT.
Added a few '(y/n)' texts after key press prompts.
Re-structured the !Help file so that it's in
chapters.
BASCompressed the !RunImage to save disk space and
memory. Also, it runs faster (I think)
Version 2.06 Re-wrote handling of X-headers file. It no longer
loads them into a memory block which was setup for
20 lines no matter how many you had.
This new code is called only when the mail file is
being created - and therefore, won't tell you its
loading the file.
Now, all that happens, is that, if the file exists,
it is loaded, checked for various bits, then the headers
written into the new file.
This means that you can effectivley have unlimited
headers, which is much better, esp since it saves
memory :)
I still recommend a minimal amount though.
Wrote CSV2Qm to convert CSV files into Qm format
address books. Well, it was basically Mar2Qm
rebadged and with some different parsing code.
I decided to just make Mar2Qm recognise both Marcel
and CSV file-types to make supporting other suites
easier.
Wrote Qm2CSV to convert a QM mail file into a CSV
format file.
Syntax: *Qm2CSV <output filename for CSV creation>
Wrote ListAdrs to list the QuickMail address book to
screen. Pressing 'P' pauses the output.
Edited ConfigRead to be a tad quicker at reading the
config file.
Version 2.07 Changed the length of Message-ID so that it is now
much smaller. Apparently, Pipex's servers get upset
(and don't send) about mails with long message-Ids.
I haven't had anybody report this with QuickMail,
but saw it in a newsgroup - so just changed the
message Id create routine a touch.
'Commissioned' Ally to write !QMC. Well, he wanted
to beta test it - so I told him to write a config
app at the same time <laugh>
Edited Mar2QM a bit so that it would cope with CSV
files a bit better.
Edited ListAdrs a tad to make it easier to check
whether CSV files have been parsed correctly.
Version 2.08 Nothing major - no bug fixes.
Simply changed;
* The message ID text if there is no hostname to be
found, from localhost.lch to simply, localhost
* Added some useful messages about closing the task
window to finish the session - as it may have
been confusing for some people.
* Changed my email address from MoZes@ccl4.org to
MoZes@ccL4.org - people seem to think ccl4 is
cc14.
I think this may finally be the final version.
Version 2.09 Whooops!
I noticed whilst removing my From: address from the
config file, that QM didn't detect the lack of it !!
This is now fixed.
Also, major whoops!! I never added from the very
first version the actual CODE support for REply-To:
So, you could set it, but the mail never got it
written to it!! This is now fixed as well.
It also tells you you have a Reply-To address set when
you compose the mail, if it *is* set.
QM also doesn't default it to the From: address if
you don't have a reply-to set.
Version 2.10 Added support for >79 characters per line length. It
can now be changed in the config file by hand.
It has a limit of 250 characters though - but thats
too much for one sentance anyway since it should really only
do for upto 80 chars in the RFC.
Version 2.11 Made it check properly whether it had managed to
delete the composed mail or not. (so it now checks for errors and
wotnot properly)
Also, it now reports 'QUICKMail' as its task, whilst
running.
Version 2.12 Now copes with CGIish type MailTo: URL formats which people
seem to be putting in their e-mail URLs on homepages.
It will decode this type sucessfully;
MailTo:whoever@domain.org?subject=whatever subject
the mailto: or ?subject= part do not mind which case they are
in (both upper/lower or a combination of both are catered
for)
Dodgy MailTo:'s are also coped with, eg a space in the e-mail
like Mo Zes@ccL4.org Of course, nobody should do this, but
perhaps it may get messed up in transport from the app to QM,
so the code's there anyway.
The code which generates a sentbox, and opens the old
sentbox has been modified so that it can trap errors before
it tries to write directly to the file.
It first does a *Access etc wr on the file to make sure that
we are able to modify the file, which we need to be able to
do. If an error occurs at this stage (we trap the errors
silently so they don't cause a fatal error in QM which gets to the main error
handler, hence stopping mail composition), we tell the user
that we can't use the sentbox specified.
It then *CREATEs a new file if one does not exist, and
assuming there was no error from the first *ACCESS. If this goes okay, then
we will be able to use the sentbox. Again, if an error occurs then
we silently trap it, and tell the user.
Version 2.13 * Not released *
SMTP direct sending implemented via will-l's "Jess" Agent
New command added to the config file to support the mail server
which SMTP sending will use.
Got to remember to ask Ally to edit !QMC to incoporate the
changes.
Added a Built date into the X-Mailer headers for e-mails
just for human curiosity.
Also updated the !Help file to bring in the SMTP changes,
and other little changes which needed doing.
Version 2.13a * Not released *
Simply made it state which SMTP server you had specified when
asking you if you wanted to send locally or SMTP.
Made it easier to test because I wanted to know which server
I was using - when I was testing it on as many as I could.
Plus its useful to know which one you have selected.
Version 2.14 * Not released *
The BST/GMT time zone has finally been added.
If its BST, it will add "+0100 (BST)" to the end of the
Date: field. If GMT, then "+0000 (GMT)".
Also, the information available ie Subject: when entering the
e-mail, has had the Date: field added as well.
Ally got around to redoing !QMC as well, so it now
encorporates the changes I needed - the mail server field etc.
Version 2.15 * Not released *
Comissioned Ally to write a better SMTP sending agent as Jess
was having problems, and I couldn't be bothered to wait for Will to fix it
else I probably would have scrapped the idea totally. The interface
"protocol" has changed slightly from version 2.14 so it uses different
variables which Ally's new prog will use. Otherwise, the actual interface
between QM and the external agent is identical.
Version 2.15a * Not released *
Noticed that when pressing the "Enter" key, it had odd
effects. Its supposed to be the same as pressing the "Return" key - this
*is* now the effect.
Modified Ally's SMTPSend program to work with QM myself.
Modified QuickMail itself. It no longer produces &D after
the headers as this really messes up direct SMTP sending.
It only produces &d on the final "dot" (to denote end of
mail). Everything still works fine with ANT suite.
Changed the loading format of SMTPSender, now uses sys vars.
QM unsets them after its finished sending.
This is the end of this program now, I've had enough.
Version 2.16 * Not released *
Okay, I lied. I thought I should make the mail sending multi
tasking - mainly because the server I use sometimes takes at *least* 5
seconds to connect .. and hogging the computer for at *least*
10 was unacceptable.
So, I've added another option in the config file called
SMTP.MultiTask:
By default, it is switched to "no" so it doesn't multi task
when sending mail to the specified SMTP server, this is
because it will use up another 28k to open a task window and run itself in
it, which may not be great for small memory machines.
However, I *have* reduced the wimp slot for QM itself to 28k, where it was
previously 42k.
Making multi tasking SMTP sending also means you can use it
on your local machine with FreeSMTP - which is essential for peeps who use
it!
Version 2.17 * Not released *
Added the Always.SMTPSend feature of the config file into
the program because when Gerph was testing it, he doesn't
have ANT - so couldn't do anything else anyway.
Changed "Cc:" and "Bcc:" to "CC:" and "BCC:" because thats
what case they are supposed to be in.
Changed QM's config file variable to be QuickMail$ConfigFile
I edited QMC and ConfigRead accordingly.
This is so that we can use the Choices: directory on RPC
!Boots. Just got to write the prog to find out where the
file is.
Changed the display so that Date: and Subject: came first.
Version 2.18 * Released as a Beta *
Made QM now use Message files for most of its messages. The
SMTPsender doesn't use them though.
Fixed a bug in that when you opt to remove a bad address
from the BCC field, it didn't actually remove it when it printed it on
*Screen* - it would however not actually put the bad email address in the
composed file. I simply forgot to switch the variable, which is no longer
needed after the headers have been built, for the variable which has been
"swapped" for either the alias, or have a bad address removed from it.
When inputting subject, To, Cc etc - they're now all lined
up.
Version 2.19
Turned off the BST/GMT as default. Option now in config file.
Made SMTPSend time out after a certain period of time. The
amount of time is stored in the "UserConfig" file.
Stopped QM from putting spaces before it writes mail to the
sentbox, only if the sentbox is of zero bytes (ie QM just created it)
Version 2.20
Added a way of having random taglines appended to the
signature. Look in !QuickMail.resources.rndsig for the
answer, and edit the UserConfig file manually.
Version 2.21 The SMTP agent would not close the mail file when it returned
a server error message, so if you discarded the composition once
control returned to QuickMail, QM would crash with a file open error.
Now fixed.
Changed Mail date handler to use the proper SWI instead of
my own code, therefore now does all time zones.
The config option in the config file can still be used to
specify whether you want it to say the time zone (eg BST/GMT) or not.
The config option has now changed to Use.TimeZone however, to
reflect the fact it is *any* time zone, not just BST or GMT.
Version 2.22 Instead of writing the FCC folder as we go along, we now
write it only when the user says they want to post the mail.
This means we no longer have a copy of the mail if the user
says they don't want to post the mail, which was quite annoying.
Changed Message file to have an extra entry to say it was
writing the FCC folder.
Gave QM my random tag generator which I use for ANT. It can
support random quotes of the day if the data is prefixed
with &