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