I've started to work on the new user architecture. Now the users file (
grendel.info) looks something like this:
email@example.com server=mail.example.com port=110 username=user encryptedPassword=$1$Aa$N.1.KcWzIorULwFN/EgMA/ externalLinks=_top
This means that I'm able to check both my mscape.com and my AT&T WorldNet accounts, by simply signing in with the appropriate email address and password (I'm using the email address since it's the only thing which I could depend on to be unique and be easily remember, since a POP user name@POP Server scheme would have been harder to remember if, like in the case of my mscape.com account, the POP server is different from the server part of the address. You can also see that my two password are the same, since they yield the same encrypted string, but it still doesn't help you in figuring out what they are (this is what I was talking about before, when I was saying that I'm not actually storing the password on the server). What remains to be done is to implement a way for new users to sig-in, and then grendel is actually usable to people besides me.
I've also gotten the message deletion to work. In the end it turned out to be a very stupid thing. Since Perl is very flexible, it doesn't balk when you try to do things which would never get past the compilers of other languages. In my case, I had a function called
POPLogIn, but when I called it, I spelled it as
PopLogIn (Perl being case sensitive). Fixing it was obviously trivial. Now I can finally pre-emptively delete spam so that it never reaches my Netscape Messenger Inbox (perhaps in the future I'll add message filtering too, since Perl supports run-time creation and evaluation of regular expressions (pattern matching tools, like the thing I showed before which extracted the email address and name out of the
From: field), but that's some ways out).