GNU mailutils TODO list.  2004-01-27
Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.

* Documentation

* mailbox 

** Generic search interface

** Locking

*** Implement a read/write locker_lock() flag so that when MU_LOCKER_WRONLY
is set in the locker flags, only write locks actually lock the file,
read locks don't do anything.

*** what kind of locking should mh use? See FIXME in mbx_mh.c

*** why does mimetest fail on a symlink, but succeed on a dotlocked file?

*** implement a force unlock mode... so that when a mailbox
is closed or destroyed it can make sure that the lock
is definitely gone.

** select needed

** mailboxes don't remember whether or not they've been opened

** mu_error() vs. debug_t: Revise both methods of reporting the
diagnostics. Possibly they could be merged. Possibly log_t object
is needed.

** does IMAP do an EXAMINE instead of a select if the mailbox is being
opened readonly? Does list return whether a mailbox is readonly?
Check against CMUs anon server, it is a read-only mailbox.

** mu_cpystr - the size_t* size outputs only give strlen(), not the
actual length?
Sam Roberts:
  My recollection is that when you give a buffer to output APIs, you give
  the total size. But the size_t* that returns the required size, returns
  the required size, minus the NUL. The units are different, in a sense.

** need code to find a "real" envelope from... an actual email address
that DSNs can be sent to.

** need to be able to map some addresses (like mail to "root") to a
user for the box, a la nullmailer, perhaps
Sam Roberts:
  If you have a really simple workstation with a basic mail system,
  you  may want mail.local to deliver all email addressed to "root" and
  "postmaster", etc., to a particular user, like yourself. 
Sergey Poznyakoff:
  In short, that is kind of aliasing support. We have aliasing support
  in MH, possibly it could be used in libmailbox as well.

** mailer_t: the SMTP mailer isn't as fully implemented as the sendmail
mailer.

** make the smtp mailer calls usable standalone, as well as url based,
and use them in mail.remote.

** support AUTH=anonymous (imap://cyrus.andrew.cmu.edu/archive.info-cyrus)

** support POP3S and IMAPS mailers (ports 995/993).
Jeff Bailey says:
  I think this might be the only encryption that common versions of
  Outlook Express support.  As a low priority TODO list item, (like if it
  never gets done, there's no worries) I think it can probably stay on.

  The advantage of having it just do this itself is that other utilities
  aren't required to get this configured up in something like Debian.

** filter_trans needs readline method.

* pop3

** pop3d_readline - should this use select(), avoid the race condition,
and touch the lockfile in time intervals smaller than MU_LOCKER_EXPIRE_TIME?

* imap4d

** Check interaction with various imap clients. Currently tested with:
mail (from mailutils itself), mutt, pine, netscape, mozilla.

** Better support of multi-access mailbox

** implement charsets in search: 1 SEARCH CHARSET ISO-8859-2 TEXT ...

** implement AUTHENTICATE KERBEROS_V4 and SKEY and CRAM-MD5 and SRP?

* mail

** Add support for /etc/mailcap

* Mailcap API

The framework is implemented. Needs extensive testing.

* Mime.types API

* examples

** unify the mbox-* and mimetest examples with messages, it would be nice
to have a general purpose tool

* mh -- see mh/TODO

* sieve

** run as daemon, sieveing mail on arrival (need interface for notification
of message arrival, this is supported by imap, but we'll have to fake
for pop and local spools my polling, why can't you select() on a unix
file?)

* mail.local: Add daemon mode with LMTP support

* utilities

** forward only MTA, nullmailer like, but accepting SMTP on 25 from localhost

** file viewer, based on the mimetypes api. I want to do a "v foo.blah",
have it look up .blah in mime.types, and do the action spec'ed in mailcap.

** all

* add nightly build

* add more features

* optimize everything

* test everything


Local variables:
mode: outline
paragraph-separate: "[ 	]*$"
end: