[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Magellan's alter ego
From:       Rik Hemsley <rik () rikkus ! demon ! co ! uk>
Date:       1999-04-04 14:23:08
[Download RAW message or body]


Well yes I've been writing my own mail/news client for the last 6
months.

Here's some of the description which I'm about to publish. I was waiting
until I was ready to release it so as not to act as competition for
KMail, but it looks like now might be the time to get it in the open.

Note: yes, 6 months, and full time. It's very close to being ready to
release.
Perhaps I should get together with the Magella author ?

It's called Empath, for the moment.

Any suggestions on what I should do with it ? It's only been me working
on it so far.

Implemented Features

Fully compliant with KDE standards. 

Deals with plain rfc822 and MIME messages. 

Threading works, and works right. Unlike some clients I could mention
but won't (Netscape and Outlook). Threading does NOT work on whether
there's a 'Re:' in the subject, nor on the date. It is achieved through
intelligent message envelope parsing, using the References and
In-Reply-To headers. 

Mail is delivered to Maildir format mailbox. I made a policy decision at
the beginning of the project, which I stick to. This is that I will not
deliver to an unsafe mailbox. That means I will not deliver to
UNIX-style boxes (mbox, MMDF) or MH. I will, however, collect mail from
these boxes, so as to avoid crippling the client. This does, however,
mean that I do not guarantee that mail will not be lost while removing
mail from these maildrops. 

Filtering. Filters control a lot more than your average client uses them
for. Instead of just allowing you to put incoming mail into a folder,
Empath's filters will allow you to automatically forward the mail,
delete it and even notify you that it has arrives. Rather than setting
up separate mechanisms for each of these (e.g. using a separate mail
notification program), Empath does everything with its filters. This
means you can have a filter that checks if a mail is from your boss,
puts it into folder 'boss', forwards it to another address where you can
read (on holiday), and notifies you via your pager, if you're into that
sort of thing. (Note: pager notification is unimplemented ;) 

Configurable look and feel. For example, you can completely replace
Empath's icons by makeing/downloading another set and picking that set
from the list. Easy. Also, you can configure the look of received
messages by simply adding/changing an HTML template. Messages are
inserted into HTML templates for viewing, so you can just use an empty
one and see only the message body, in plain text if you wish. The
standard one displays a few common headers, marked up, and the signature
in its own box. 

Extensible. Empath has a fairly clean API and is well documented. The
structure of the design is such that you don't need to do much as a
programmer to get/send mail. You ask Empath to send a message by giving
it the message data. It does. You are notified that a message has
arrived and given an id for that message. You ask for the message and
Empath downloads it and hands you it, ready parsed into an easy-to-use
object. 

External editor works. You can use, e.g. Vim to compose mail, if, like
me, you really hate having to use anything else (keep pressing
escape...). You don't get to piss about with the cursor to edit the
header fields, either, as you can type them into Empath and then use
your editor. It's really just like mutt :) 

Planned Features


Finish off. Mailboxes in Empath have a well defined API, so I shouldn't
have trouble adding NNTP, mbox, mmdf, MH and IMAP support. IMAP support
is next on the list. I have to do mbox and NNTP because, respectively,
people will want to get mail from mbox boxes (Note: This is done but
needs testing) and I started out wanting a mail+news client, so the NNTP
support must go in. 

Finish porting to Qt+KDE 2. This just means changing the storage for
message headers to QCString, for efficiency, then realising the
conversion takes so long that the extra space isn't worth it ;) 

Further optimisation of Maildir indexing. 

Convert my design doc on Maildir into an RFC and fist-fight D. J.
Bernstein as I hear he believes that he knows best ;)

Cheers,
Rik

-- 
http://without.netpedia.net

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic