|
+ --> fixed/done |
|
|
- --> pending |
|
|
= --> on hold |
|
|
* --> in progress |
|
1 |
|
|
2 |
[docs] |
* Documentation |
3 |
|
|
4 |
[mailbox or mailbox2] |
* mailbox |
5 |
|
|
6 |
IMPORTANT: |
** Generic search interface |
|
There is currently a rewrite of the mailbox called mailbox2 to address |
|
|
some of the flaws of the old version. |
|
7 |
|
|
8 |
- generalized search interface |
** Maildir support |
9 |
|
|
10 |
[mail.local] |
** iterator_t is very ineffective. Traversing the list from iterator_first() |
11 |
|
till iterator_is_done() takes O(n*(n+1)/2) time units, where n is |
12 |
|
number of elements in the list. To reduce this to O(n), iterator_t |
13 |
|
must keep the address of the last visited item in the list. |
14 |
|
|
15 |
- can it append to an imap mailbox? |
** Locking |
16 |
|
|
17 |
[pop3] |
*** Implement a read/write locker_lock() flag so that when MU_LOCKER_WRONLY |
18 |
|
is set in the locker flags, only write locks actually lock the file, |
19 |
|
read locks don't do anything. |
20 |
|
|
21 |
- pop3d_readline - should this use select(), avoid the race condition, |
*** implement mailbox_lock() and mailbox_unlock() shortcut functions. |
|
and touch the lockfile in time intervals smaller than |
|
|
MU_LOCKER_EXPIRE_TIME? |
|
22 |
|
|
23 |
[imap4d] |
*** what kind of locking should mh use? See FIXME in mbx_mh.c |
24 |
|
|
25 |
- support of mailspools in user home directory, particularly when |
*** why does mimetest fail on a symlink, but suceed on a dotlocked file? |
|
they are in maildir format (I think qmail does this). |
|
26 |
|
|
27 |
- Check interaction with various imap clients. Currently tested with: |
*** implement a force unlock mode... so that when a mailbox |
28 |
mail (from mailutils itself), mutt, pine, netscape, mozilla. |
is closed or destroyed it can make sure that the lock |
29 |
|
is definitely gone. |
30 |
|
|
31 |
- Better support of multi-access mailbox |
** argcv.c should unescape strings as well as unquote them |
32 |
|
|
33 |
- implement charsets in search: 1 SEARCH CHARSET ISO-8859-2 TEXT ... |
** write a fnmatch() that doesn't respect [] |
34 |
|
|
35 |
- implement AUTHENTICATE KERBEROS_V4 and SKEY and CRAM-MD5 and SRP? |
** select needed |
36 |
|
|
37 |
[mail] |
** mailboxes don't remember whether or not they've been opened |
38 |
|
|
39 |
- Add support for /etc/mailcap. |
** print errors to a debug object, by default |
40 |
|
|
41 |
[mailbox] |
** does IMAP do an EXAMINE instead of a select if the mailbox is being |
42 |
|
opened readonly? Does list return whether a mailbox is readonly? |
43 |
|
Check against CMUs anon server, it is a read-only mailbox. |
44 |
|
|
45 |
- iterator_t is very ineffective. Traversing the list from iterator_first() |
** mu_cpystr - the size_t* size outputs only give strlen(), not the |
46 |
till iterator_is_done() takes O(n*(n+1)/2), where n is number of elements |
actual length? |
|
in the list. To reduce this to O(n), iterator_t must keep the address |
|
|
of the last visited item in the list. |
|
47 |
|
|
48 |
- locking: |
** need code to find a "real" envelope from... an actual email address |
49 |
|
that DSNs can be sent to. |
50 |
|
|
51 |
- implement a read/write locker_lock() flag so that when MU_LOCKER_WRONLY |
** need to be able to map some addresses (like mail to "root") to a |
52 |
is set in the locker flags, only write locks actually lock the file, |
user for the box, a la nullmailer, perhaps |
|
read locks don't do anything. |
|
53 |
|
|
54 |
- implement mailbox_lock() and mailbox_unlock() shortcut functions. |
** mailer_t: the SMTP mailer isn't as fully implemented as the sendmail |
55 |
|
mailer. |
56 |
|
|
57 |
- what kind of locking should mh use? See FIXME in mbx_mh.c |
** make the smtp mailer calls usable standalone, as well as url based, |
58 |
|
and use them in mail.remote. |
59 |
|
|
60 |
- why does mimetest fail on a symlink, but suceed on a dotlocked file? |
** header_get_value() returns the newline? |
61 |
|
|
62 |
- implement a force unlock mode... so that when a mailbox |
** implement a header_field_unfold()? |
|
is closed or destroyed it can make sure that the lock |
|
|
is definitely gone. |
|
63 |
|
|
64 |
- lib/argcv.c should unescape strings as well as unquote them |
** pipe_open_stream() - implemented with popen() |
65 |
|
|
66 |
- write a fnmatch() that doesn't respect [] |
** support AUTH=anonymous (imap://cyrus.andrew.cmu.edu/archive.info-cyrus) |
67 |
|
|
68 |
- select needed |
* pop3 |
69 |
|
|
70 |
- mailboxes don't remember whether or not they've been opened |
** pop3d_readline - should this use select(), avoid the race condition, |
71 |
|
and touch the lockfile in time intervals smaller than MU_LOCKER_EXPIRE_TIME? |
72 |
|
|
73 |
- print errors to a debug object, by default |
* imap4d |
74 |
|
|
75 |
- does IMAP do an EXAMINE instead of a select if the mailbox is being |
** Check interaction with various imap clients. Currently tested with: |
76 |
opened readonly? Does list return whether a mailbox is readonly? |
mail (from mailutils itself), mutt, pine, netscape, mozilla. |
|
Check against CMUs anon server, it is a read-only mailbox. |
|
77 |
|
|
78 |
- mu_cpystr - the size_t* size outputs only give strlen(), not the |
** Better support of multi-access mailbox |
|
actual length? |
|
79 |
|
|
80 |
- finish mh mailbox support (they don't have a folder yet) |
** implement charsets in search: 1 SEARCH CHARSET ISO-8859-2 TEXT ... |
81 |
|
|
82 |
- need code to find a "real" envelope from... an actual email address |
** implement AUTHENTICATE KERBEROS_V4 and SKEY and CRAM-MD5 and SRP? |
|
that DSNs can be sent to. |
|
83 |
|
|
84 |
- need to be able to map some addresses (like mail to "root") to a |
* mail |
|
user for the box, a la nullmailer, perhaps |
|
85 |
|
|
86 |
- mailer_t: the SMTP mailer isn't as fully implemented as the sendmail |
** Add support for /etc/mailcap |
|
mailer. |
|
87 |
|
|
88 |
- make the smtp mailer calls useable standalone, as well as url based, |
* Mailcap API |
|
and use them in mail.remote. |
|
89 |
|
|
90 |
- header_get_value() returns the newline? |
The framework is implemented. Needs extensive testing. |
91 |
|
|
92 |
- implement a header_field_unfold()? |
* Mime.types API |
93 |
|
|
94 |
- pipe_open_stream() - implemented with popen() |
* libmuauth |
95 |
|
|
96 |
+ Configuration API |
** First argument to mu_auth_fp (and second one to mu_auth_runlist) should |
97 |
|
be struct mu_auth_data ** instead of void *. |
98 |
|
|
99 |
- Mailcap API |
* examples |
100 |
|
|
101 |
- Mime.types API |
** unify the mbox-* and mimetest examples with messages, it would be nice |
102 |
|
to have a general purpose tool |
103 |
|
|
104 |
+ A ticket file format allowing specification of different authentication |
* mh -- see mh/TODO |
|
information for different mailboxes. |
|
105 |
|
|
106 |
- imap4 client login referals |
* sieve |
107 |
|
|
108 |
- imap4 client mailbox referals |
** Implement boolean shortcut evaluation for `allof' and `anyof' |
109 |
|
|
110 |
- Maildir mailbox support |
** uid isn't good to identify messages, use message-id? |
111 |
|
|
112 |
+ support AUTH=anonymous (imap://cyrus.andrew.cmu.edu/archive.info-cyrus) |
** run as daemon, sieveing mail on arrival (need interface for notification |
113 |
|
of message arrival, this is supported by imap, but we'll have to fake |
114 |
|
for pop and local spools my polling, why can't you select() on a unix |
115 |
|
file?) |
116 |
|
|
117 |
[libmuauth] |
NOTE: Do we need it? mail.local already provides this functionality. |
118 |
|
|
119 |
- First argument to mu_auth_fp (and second one to mu_auth_runlist) should |
* utilities |
|
be struct mu_auth_data ** instead of void *. |
|
120 |
|
|
121 |
[examples] |
** forward only MTA, nullmailer like, but accepting SMTP on 25 from localhost |
122 |
|
|
123 |
- unify the mbox-* and mimetest examples with messages, it would be nice |
** utility to move all mail from one mailbox to another, like mbox to |
124 |
to have a general purpose tool |
IMAP, preserving all flags that are possible. can sieve do this, or do |
125 |
|
I need a mbox-copy() utility? |
126 |
|
|
127 |
[mh] |
** file viewer, based on the mimetypes api. I want to do a "v foo.blah", |
128 |
|
have it look up .blah in mime.types, and do the action spec'ed in mailcap. |
129 |
|
|
130 |
- see mh/TODO |
** all |
131 |
|
|
132 |
[sieve] |
* add nightly build |
133 |
|
|
134 |
- Implement boolean shortcut evaluation for `allof' and `anyof' |
* add more features |
135 |
|
|
136 |
- uid isn't good to identify messages, use message-id? |
* optimize everything |
137 |
|
|
138 |
- run as daemon, sieveing mail on arrival (need interface for notification |
* test everything |
|
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?) |
|
|
Do we need it? mail.local already provides this functionality. |
|
139 |
|
|
140 |
[utilities] |
* util_strcasestr() from mail/util.c provides the same functionality |
141 |
|
as i_ascii_casemap_contains() from libsieve/comparator. Merge both |
142 |
|
versions. |
143 |
|
|
144 |
- forward only MTA, nullmailer like, but accepting SMTP on 25 from localhost |
|
145 |
|
Local variables: |
146 |
- utility to move all mail from one mailbox to another, like mbox to |
mode: outline |
147 |
IMAP, preserving all flags that are possible. can sieve do this, or do |
paragraph-separate: "[ ]*$" |
148 |
I need a mbox-copy() utility? |
end: |
|
|
|
|
- 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) |
|
|
|
|
|
- util_strcasestr() from mail/util.c provides the same functionality |
|
|
as i_ascii_casemap_contains() from libsieve/comparator. Merge both |
|
|
versions. |
|