+ --> fixed/done
- --> pending
= --> on hold
* --> in progress

[docs]

- review examples in docs. many don't build. I think there needs to be a way
  of building the examples, and then converting them to texinfo, its the
  only way we'll always know they aren't garbage. Broken examples: stream.texi

[mailbox or mailbox2]

IMPORTANT:
  There is currently a rewrite of the mailbox call mailbox2 to address
  some of the flaws of the old version.

- generalized search interface

[mail.local]

- integrate sieve

- can it append to an imap mailbox?

[pop3]
- SSL support

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

[imap4d]

- support of mailspools in user home directory, particularly when
  they are in maildir format (I think qmail does this).

- why do we do the uw-imapd thing of showing all files in the users
  home as if they were a mailbox? I figure there should be an option to say
  where your mail folder is, so that if you say

    --mail-folder=~

  it will be uw-imapd compatible, but if you say

    --mail-folder=~/Mail

  all your IMAP folders will be under ~/Mail.

  Except mbox.

- Check interaction with imap clients.

- 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 MIME support.

[mailbox]

- 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.

  - implement mailbox_lock() and mailbox_unlock() shortcut functions.

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

  - why does mimetest fail on a symlink, but suceed 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.

- lib/argcv.c should unescape strings as well as unquote them

- write a fnmatch() that doesn't respect []

- select needed

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

- print errors to a debug object, by default

- 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?

- finish mh mailbox support (they don't have a folder yet)

- 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

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

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

- header_get_value() returns the newline?

- implement a header_field_unfold()?

- pipe_open_stream() - implemented with popen()

+ Configuration API

- Mailcap API

- Mime.types API

+ A ticket file format allowing specification of different authentication
  information for different mailboxes.

- imap4 client login referals

- imap4 client mailbox referals

- Maildir mailbox support

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

[examples]

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

[sieve]

- need to deal with the envelope addressing issues

+ make sure there's a SV_DBG_ERR, so REAL info on errors gets printed

- add copyrights, including CMUs to the docs

+ argp

- clean up diagnostics
 - fileinto action dies badly when the mailbox lock failed
 + make log function a callback
 - get rid of the awful xalloc()

- need user contexts, and for the action_log to be only if verbose

- uid isn't good to identify messages, use message-id?

- also need to provide context to the sv_*() functions (I could tuck
  message number in it, and mailbox name).

- 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?)

The 5 actions:

+ keep

+ fileinto

+ discard

+ redirect

- reject (need to form MDNs)

Extention actions:

- REGEX

- vacation

[utilities]

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

- utility to move all mail from one mailbox to another, like mbox to
  IMAP, preserving all flags that are possible. can sieve do this, or do
  I need a mbox-copy() utility?

- 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

+ add imap server code (JB && Shaleh Oct 11/99)