imapext-2007

view docs/RELNOTES @ 0:ada5e610ab86

imap-2007e
author yuuji@gentei.org
date Mon, 14 Sep 2009 15:17:45 +0900
parents
children 2366b362676d
line source
1 /* ========================================================================
2 * Copyright 1988-2008 University of Washington
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 *
11 * ========================================================================
12 */
14 Updated: 16 December 2008
16 imap-2007e is a maintenance release, consisting primarily of bugfixes to
17 problems discovered in the release that affected a small number of users
18 plus a security fix for users of the RFC822BUFFER routines.
21 Updated: 29 October 2008
23 imap-2007d is a maintenance release, consisting primarily of bugfixes to
24 problems discovered in the release that affected a small number of users
25 plus a security fix for users of tmail or dmail.
28 Updated: 25 March 2008
30 imap-2007b is a maintenance release, consisting primarily of bugfixes to
31 problems discovered in the release that affected a small number of users.
34 Updated: 2 January 2008
36 imap-2007a is a maintenance release, consisting primarily of bugfixes to
37 problems discovered in the release that affected a small number of users.
40 Updated: 20 December 2007
42 imap-2007 is a release corresponding with the release of Alpine 1.0.
43 The primary focus of the imap-2007 release is bugfixes and reliability
44 improvements. This includes:
45 . fixes to problems discovered between the Alpine 0.99999 pre-release
46 and Alpine 1.0
47 . fixes to the mix driver to timing race problems uncovered by Timo
48 Sirainen's imaptest suite. imap-2007 using the mix format is
49 believed to pass imaptest completely.
51 A new function, utf8_csvalidmap(), has been added for the benefit of
52 Alpine to use in examining UTF-8 text and determining efficiently
53 whether it can be downgraded to a legacy charset. If you develop an
54 MUA, this may be useful for you too, although you'll have to read the
55 source code to see how to use it. The purpose of the "not-CJK" bit is
56 to prevent messages being downgraded to a CJK charset if all they have
57 in that charset are some special punctuation.
60 Updated: 5 September 2007
62 imap-2006k is a maintenance release, consisting primarily of bugfixes to
63 problems discovered in the release that affected a small number of users.
65 The primary focus of this maintenance release is to correct deadlock
66 issues. There were two major causes of the deadlocks:
67 . a change in imap-2006i attempted to resolve a glibc mutex-based
68 deadlock in imapd's signal handler, but ended up worsening the problem.
69 . a bug in the mbx driver, introduced as part of the UIDPLUS work in 2006,
70 applied an mbx-style lock briefly on a traditional UNIX format mailbox.
71 If the traditional UNIX format mailbox was already locked by some other
72 process, the result would be a deadlock of both processes.
74 imapd's signal handling logic is rewritten to avoid the mutex issue, and
75 the mbx driver is fixed so that mbx-style locks are only applied to mbx
76 format mailboxes.
78 imapd now supports the WITHIN extension.
81 Updated: 14 June 2007
83 imap-2006j is a maintenance release, consisting primarily of bugfixes to
84 problems discovered in the release that affected a small number of users.
87 Updated: 5 June 2007
89 imap-2006i is a maintenance release, consisting primarily of bugfixes to
90 problems discovered in the release that affected a small number of users.
92 imapd now supports the CHILDREN and ESEARCH extensions.
94 imapd's attempt to return COPYUID/APPENDUID information for a traditional
95 UNIX (and MMDF) format mailbox when the mailbox is open by another process
96 has been declared to be a failure and is now revoked. It was subject to a
97 timing race, loss of which involved an expensive reset of the mailbox's UID
98 regime. Any imapd COPY or APPEND to a traditional UNIX or MMDF format that
99 is open by some other process will now no longer return COPYUID/APPEND.
100 Although this is technically in violation of RFC 4315, there is a loophole
101 in that document and the timing race/performance problem is worse.
104 Updated: 4 April 2007
106 imap-2006h is a maintenance release, consisting primarily of bugfixes to
107 problems discovered in the release that affected a small number of users.
110 Updated: 30 March 2007
112 imap-2006g is a maintenance release, consisting primarily of bugfixes to
113 problems discovered in the release that affected a small number of users.
116 Updated: 30 January 2007
118 imap-2006f is a maintenance release, consisting primarily of bugfixes to
119 problems discovered in the release that affected a small number of users.
121 For the benefit of multi-threaded applications, use of strtok() has been
122 abolished in the c-client library. imapd and ipop3d stuff use it though.
123 The TOPS-20 and VAX/VMS ports still use strtok() since they don't use UNIX
124 threads.
126 This version has been test-built on Linux, Mac OS X, NeXT, Windows XP,
127 TOPS-20, and VAX/VMS. This will probably be the last test-build on VAX/VMS
128 since the system I use for that purpose is being shut down. I have no way
129 to test-build on DOS, legacy Mac OS (OS 9 and earlier), OS/2, or Windows CE;
130 and the builds on those systems are probably broken.
133 Updated: 26 January 2007
135 imap-2006e is a maintenance release, consisting primarily of bugfixes to
136 problems discovered in the release that affected a small number of users.
139 Updated: 6 December 2006
141 imap-2006d is a maintenance release, consisting primarily of bugfixes to
142 problems discovered in the release that affected a small number of users.
144 The decomposition mapping, title-case mapping, and character widths tables
145 have been updated to comply with the Unicode 5.0 standard.
147 Prototypes for the utf8aux.c functions have been moved to a new utf8aux.h.
149 The general c-client modules now include c-client.h instead of the individual
150 files. Use of c-client.h instead of individual include files insulates
151 against future shuffling of include files.
154 Updated: 23 October 2006
156 imap-2006c is a maintenance release, consisting primarily of bugfixes to
157 problems discovered in the release that affected a small number of users.
159 By popular request, if a user has a mix (or other dual-use) format INBOX,
160 it will no longer be listed as \NoInferiors. It's a bad idea to depend
161 upon this due to the case ambiguity issue, but it's there.
164 Updated: 26 September 2006
166 imap-2006b is a maintenance release, consisting entirely of bugfixes to
167 problems discovered in the release that affected a small number of users.
170 Updated: 15 September 2006
172 imap-2006a is a maintenance release, consisting entirely of bugfixes to
173 problems discovered in the release that affected a small number of users.
175 If it is necessary to build IPv4-only on one of the ports that has IPv6
176 preconfigured (ldb, lfd, lmd, lrh, lsu, osx, oxp), this can be done by
177 using IP6=4. You can't do IP=4 in the build command directly since these
178 ports set IP themselves; however, now instead of setting IP=6 they now set
179 IP=$(IP6).
182 Updated: 30 August 2006
184 imap-2006 is a major release. Programs written for imap-2004g should
185 build with this version with minor or no modification. imap-2005 was not
186 released except as development snapshots.
188 imap-2006 contains major extensions to its Unicode support. Searching and
189 sorting are now done with strings canonicalized to titlecase and decomposed
190 form. Among other things, this means that Latin letters with diacriticals
191 will now sort with the basic Latin letter, and case-independent searching of
192 such letters (e.g., German umlauts) now works. Previously, sorting was done
193 strictly by Unicode codepoint, and case-independence only worked with ASCII.
195 imapd now supports the UIDPLUS extension for mailboxes in unix, mmdf, mbx, mx,
196 and mix formats. UID EXPUNGE is fully implemented. Note that UIDPLUS is not
197 supported in the little-used drivers (mh, mtx, tenex) in which meaningful
198 APPENDUID/COPYUID data can not be returned. Refer to bugs.txt for more
199 details.
201 The new mix format is a dual-use mailbox format designed for performance and
202 reliability with large mailboxes. mix is documented in file mixfmt.txt.
204 SSL/TLS certificate validation on UNIX now checks the alternative names in the
205 certificate if the CN does not match.
207 The new /tls-sslv23 flag in a mailbox name causes a TLS session to use the
208 (incorrect) SSLv23 client method instead of the TLSv1 client method. Some
209 broken servers use the SSLv23 server method, and this flag works around that
210 problem. WARNING: use of this flag will cause TLS negotiation to fail with
211 a server which uses the proper TLSv1 server method. Additionally, there are
212 known security risks in SSLv2; so users should be suspicious if this switch
213 suddenly becomes necesary.
215 The silly mailbox flag combination /ssl/tls is now rejected as an invalid
216 remote specification. Previous versions tried to negotiate TLS over an SSL
217 session; even if the server permitted such a thing it couldn't work.
219 The memory management of several drivers has been redesigned to consume less
220 memory and hopefully be faster.
222 The private.data member of the MESSAGECACHE (elt) has been replaced with
223 a union that contains private.spare.data and private.spare.ptr, the latter
224 being a pointer.
226 A new FT_RETURNSTRINGSTRUCT flag has been added for mail_fetch_body() and
227 mail_fetch_text() calls. If this flag is set, *and* if the function returns
228 NIL, then the requested string data is available on a stringstruct on
229 stream->private.string. This is a special hack for the IMAP and POP servers
230 and is subject to incompatible change. The result is a major performance
231 improvement in the servers with the mbx driver, particularly with large
232 messages.
235 Updated: 15 September 2005
237 imap-2004g is a maintenance release, and consists solely of a bugfix to
238 quoted string handling in the mailbox name parsing routine.
241 Updated: 15 August 2005
243 imap-2004f is a maintenance release, and consists solely of a bugfix to
244 the TCP code.
246 Also included is a new version of the UNIX SSL/TLS routines that allows the
247 SSL/TLS certificate validation client code to validate alternative names in
248 server certificates. This code has not been thoroughly regression-tested but
249 is believed to work. To use this new code instead of the old support:
250 cd imap-2004f/src/osdep/unix
251 mv ssl_unix.c ssl_unix.old
252 mv ssl_unix.new ssl_unix.c
253 Then rebuild.
256 Updated: 21 June 2005
258 imap-2004e is a maintenance release, consisting entirely of bugfixes.
260 There are no user-visible functional enhancements in this version.
263 Updated: 20 April 2005
265 imap-2004d is a maintenance release, released concurrently with Pine
266 4.63, and consists primarily of bugfixes
268 There is now a workaround for RedHat breaking flock(). However, since
269 RedHat has said that they don't support flock(), there is no guarantee
270 that they won't break it in the future. So you may want to consider some
271 other Linux distribution or BSD instead. See:
272 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=123415
273 for the gruesome details.
275 There are no user-visible functional enhancements in this version.
278 Updated: 18 January 2005
280 imap-2004c is a maintenance release, released concurrently with Pine
281 4.62, including fixes to quoted-printable encoding and CRAM-MD5
282 authentication.
284 NNTP proxy in imapd now supports the LIST and LSUB commands.
286 There are no other user-visible functional enhancements in this version.
289 Updated: 29 November 2004
291 imap-2004b is a maintenance release, consisting primarily of bugfixes.
292 Programs written for imap-2004a will build with this version without
293 modifification.
295 There are new ports for Solaris with Blastwave Community Open Source
296 Software (gcs) and Mandrake Linux (lmd).
298 SET_SNARFINTERVAL now controls how frequently local drivers will move new
299 mail from the mail spool as well as from a maildrop. Maildrops are still
300 tied to a minimum interval of 1 minute, but there is now no minimum for the
301 spool file.
303 Character set conversions now map non-breaking space to space if the
304 destination character set doesn't have nbsp. JIS Roman yen sign is now
305 mapped to Unicode yen sign.
307 There are no user-visible functional enhancements in this version.
310 Updated: 8 July 2004
312 imap-2004a is a maintenance release, consisting primarily of critical
313 bugfixes. Programs written for imap-2004 will build with this version
314 without modification.
316 imapd now has a supported NNTP proxy capability. If the file /etc/imapd.nntp
317 exists, the contents of that file are used as the host name of an NNTP
318 server which will be used whenever a #news. name is used. For example, if
319 /etc/imapd.nntp contains nntp.example.com, and the IMAP client SELECTs or
320 EXAMINEs the name #news.comp.mail.imap, what will actually be opened in
321 imapd is {nntp.example.com/nntp}comp.mail.imap
323 The OSF/1 port (Digital UNIX, Tru64) now uses flocksim instead of flcksafe.
324 Some cretin decided to delete the winning flock() call and make flock() use
325 the losing fcntl() call instead.
327 The unix[nt] and mmdf drivers now prevent mail_append() from writing Status:,
328 X-Status:, X-UID, X-IMAP[base]:, and X-Keywords: header lines to a
329 traditional UNIX or MMDF format mailbox. If any such lines are in the
330 text supplied to mail_append(), they will be quoted by prefixing with
331 "X-Original-" (e.g. Status: will become X-Original-Status:).
333 There are no user-visible functional enhancements in this version.
336 Updated: 10 May 2004
338 imap-2004 is a major release. Programs written for imap-2002e should
339 build with this version with minor modification. imap-2003 was not
340 released except as development snapshots.
342 mailutil has three new commands: delete, rename, and prune.
344 IPv6 support now exists for UNIX and W2K. It is the default in W2K builds.
345 On UNIX, add "IP=6" to the make command line. Windows IPv6 support is
346 only for W2K builds.
348 The NNTP driver now supports NNTP SASL and TLS.
350 The ldb (Debian) and lrh (RedHat) ports now look for mlock on
351 /usr/sbin/mlock instead of /etc/mlock.
353 imapd now supports the LITERAL+ and SASL-IR initial-response extensions.
355 The IMAP driver has some additional checks to reduce the amount of network
356 traffic, including executing "silly searches" (searches of sequence numbers
357 only) locally.
359 The IMAP, POP, SMTP, and NNTP drivers now have diagnostic code to provide
360 better information about servers which violate SASL's empty challenge
361 requirements (e.g. with the PLAIN mechanism).
363 There is a new mail_fetch_overview_sequence() function which is like
364 mail_fetch_overview() but takes a sequence number string as an argument.
365 There should have been a flags argument and FT_UID bit as in all the other
366 mail_fetch_???() functions but compatibility with the past... :-(
368 The overview_t callback (from mail_fetch_overview()) now has a fourth
369 argument which contains the message sequence number (as opposed to the UID
370 which is in the second argument). It turned out that some applications were
371 calling mail_msgno() (which can be moderately expensive) to get the sequence
372 number, and c-client already knew it.
374 Many declarations which are completely internal to a driver have been removed
375 from the driver .h file, and in those cases where there are no external
376 declarations left the .h file has been eliminated entirely. As part of this,
377 the mbox driver routines are now incorporated with the unix driver routines
378 as opposed to being a separate file. The mbox driver still needs to be lunk
379 in order to get the mbox functionality.
382 Updated: 27 August 2003
384 imap-2002e is a minor release, released concurrently with Pine 4.58, and
385 contains primarily bugfixes. Programs written for imap-2002d will build
386 with this version without modification.
388 The NNTP client code now tries to perform better with legacy NNTP servers
389 which do not comply with the current NNTP protocol specification draft, most
390 notably Netscape Collabra.
392 Delivery notifications now work reliably with SMTP servers that support it.
394 The following changes are primarily of concern to developers and power users:
396 There is a "limited advertise" option in env_unix.c which, if set, will only
397 advertise the user's own namespace and the #shared/ namespace.
399 It is now possible to build the IMAP toolkit with a separate SSL KEY file
400 from the certificate file (SSLKEYS vs. SSLCERTS).
402 A new BODY structure element, sparep, is available for the main program to
403 use as a pointer for its own purposes; as well as a SET_FREEBODYSPAREP
404 function, similar to SET_FREEENVELOPESPAREP, SET_FREEELTSPAREP, etc.
407 Updated: 28 May 2003
409 imap-2002d is a minor release, released concurrently with Pine 4.56, and
410 contains primarily bugfixes. Programs written for imap-2002 should build
411 with this version without modification, with one exception. That exception
412 is the ngbogus envelope flag, which stopped being used in imap-2002c and is
413 now gone for good.
415 The NNTP newsgroup listing code now tries to use wildmats on the NNTP server,
416 which should result in better performance especially on slow lines. It is
417 also once again permitted to log in on NNTP servers when /loser is set.
419 imapd now supports the UNSELECT command.
421 A new envelope flag, imapenvonly, indicates that the envelope in a
422 MESSAGE/RFC822 BODY structure only has the IMAP envelope components and
423 not the additional components from c-client: Newsgroups, Followup-To,
424 and References.
427 Updated: 7 April 2003
429 imap-2002c is a minor release, released concurrently with Pine 4.55, and
430 contains primarily bugfixes. Programs written for imap-2002 will build
431 with this version without modification.
433 The POP3 driver will, with new servers that support CAPA, use the LIST
434 command to get the elt->rfc822_size and the TOP command to get the message
435 header, instead of fetching the entire message. Note that it is a bad idea
436 to do this with old servers, since they may misimplement LIST and TOP. The
437 result is a substantial performance improvement.
439 Subject extraction for comparisons in SORT and THREAD are now done in full
440 compliance with the rules laid out in the specification. This only makes
441 a difference if "re:" was part of a MIME quoted-word.
443 The new experimental #move namespace allows download-and-delete from a source
444 mailbox to a destination mailbox. Immediately following #move is a delimiter
445 character which must not appear in the source mailbox name, then the source
446 mailbox name, then the delimiter again, then the destination mailbox name.
447 For example:
448 #move+{pop3.foo.com/pop3}+INBOX
449 will download messages from "pop3.foo.com" into your local INBOX.
451 The NNTP driver now uses the LIST EXTENSIONS command as described in the
452 current NNTP protocol specification draft, and will prefer to use OVER over
453 XOVER, HDR over XHDR, etc.
455 The SET_NNTPRANGE function of mail_parameters() can be used to limit the
456 number of articles recognized by the NNTP driver, resulting in a substantial
457 performance improvement with NNTP servers that may have hundreds of thousands
458 of old articles in the spool. If set non-zero, then only the last n article
459 numbers will be considered. If you are on a slow link, you may want to set
460 this to 1000 or less.
462 Besides the normally tested UNIX and 32-bit Microsoft platforms, this release
463 has also been tested and will once build under TOPS-20 and VAX/VMS. I also
464 fixed a bug which would keep it from building on 16-bit DOS, but I don't know
465 if it will build on that platform or not since I no longer have a system with
466 the old DOS C compiler. It has not been tested on Macintosh (note however
467 that Mac OS X is a type of UNIX and should build), Amiga, or OS/2, and probably
468 no longer builds on those platforms.
471 Updated: 7 January 2003
473 imap-2002b is a maintenace release, released concurrently with Pine 4.52,
474 and contains only bugfixes. Programs written for imap-2002 will build with
475 this version without modification.
477 Drivers which do not announce new mail are now indicated by the DR_NONEWMAIL
478 driver flag. Driver which do not announce new mail when read-only are now
479 indicated by the DR_NONEWMAILRONLY flag.
481 There are no user-visible functional enhancements in this version.
484 Updated: 10 December 2002
486 imap-2002a is a maintenance release, consisting entirely of critical
487 bugfixes. Programs written for imap-2002 will build with this version
488 without modification.
490 There are no functional enhancements in this version.
493 Updated: 28 October 2002
495 imap-2002 is a major release. Programs written for imap-2001 will probably
496 build with this version without modification, with one exception. That
497 exception is if the program uses [GS]ET_DISABLEAUTOMATICSHAREDNAMESPACES,
498 which has been renamed to [GS]ET_DISABLEAUTOSHAREDNS in order to placate
499 some compilers which don't like very long names.
501 SSLTYPE=nopwd is now the default, in accordance with current IESG security
502 requirements. In order to build the IMAP toolkit without SSL/TLS you must
503 now use SSLTYPE=none. At initial build time, you will be told if the SSLTYPE
504 setting is in compliance with IESG security requirements, and if it is not
505 you will be asked to confirm to continue the build.
507 ORDEREDSUBJECT threading has been changed in accordance with draft 12 of the
508 IMAP threading specification. Previously, each non-root message in an
509 ORDEREDSUBJECT thread has been a child of the message immediately preceeding
510 it in the thread. Draft 12 changes this so that the second message in the
511 thread is the child of the first (root) message, and all subsequent messages
512 are siblings of the first message. This is significant in MUAs which display
513 the thread structure graphically; the new definition is much saner than the
514 old one since it does not nest endlessly due to parent/child relationships
515 that may not exist. This also impacts imapd, since imapd's THREAD command
516 will return a thread structure.
518 RFC 1730 server support, which was disabled in imap-2001, is now fully
519 removed from imapd. imapd still supports IMAP2bis, specifically the FIND
520 command, since there are still a few IMAP2 clients out there.
522 The IMAP client routines in the c-client library continue to support recognize
523 RFC 1730 servers, but do not implement the deprecated features of RFC 1730.
525 The Frequently Asked Questions file is now in HTML format, although a text
526 version (generated from the HTML version with Lynx) is also provided.
528 A new program, mailutil, is now bundled with the IMAP toolkit. mailutil
529 replaces the old chkmail, imapcopy, imapmove, imapxfer, mbxcopy, mbxcreat,
530 and mbxcvt programs that were distributed in the imap-utils. In addition,
531 the tmail, dmail, and mlock programs from the imap-utils are now also
532 bundled with the IMAP toolkit.
534 In addition to the usual bugfixes, the following c-client functionalities
535 are new in imap-2002:
537 The SET_DISABLE822TZTEXT parameter allows a client to suppress generation of
538 the "human friendly" time zone text in RFC822 dates. This placates netnews
539 and some broken SMTP servers which think that long timezone names from Windows
540 are an attempt at a buffer overflow attack.
542 The restrictBox option in env_unix.c sets "restricted box" functionality,
543 which disables access to the root (leading "/"), access to other user's
544 directories (leading "~"), and access to superior directories via "..".
546 Content-Location is now supported by the "location" member of the BODY
547 structure. Note that there is a bug in the IMAP client code in older
548 versions of the c-client library that causes it to handle BODYSTRUCTURE
549 extension data improperly if that data is a literal. The new functionality
550 for Content-Location may trigger this bug. The fix is either to upgrade
551 the IMAP client program to the imap-2002 version of c-client or to remove
552 the Content-Location support from imapd.
554 There are now 8 spare bits for application use in both the elts and the
555 mail streams.
557 mail_search() now returns a value (previously it was void). If mail_search()
558 returns NIL, then the supplied charset was invalid or the IMAP server
559 returned NO (probably because the supplied charset was invalid).
561 New utf8_charset() routine to look up a charset and return c-client's
562 database about that charset if found. Among other things, this will give
563 you the scripts supported by that charset and its Unicode conversion table.
565 New FT_NOLOOKAHEAD flag for mail_fetch_structure() disables fetching of
566 any envelopes other than the one specified. Otherwise, it will try to do
567 anticipatory fetching (up to IMAPLOOKAHEAD).
569 New GET_FETCHLOOKAHEAD allows better control of mail_fetch_structure()
570 lookahead. Instead of looking IMAPLOOKAHEAD messages forward from the
571 specified message, it will use a supplied SEARCHSET to generate message
572 sequences and ranges. It will stop at IMAPLOOKAHEAD messages or at the
573 completion of a range which exceeds IMAPLOOKAHEAD. The search set only
574 applies to the next mail_fetch_structure() on that stream, and is cleared
575 once it is used. Call with
576 SEARCHSET **set = (SEARCHSET **)
577 mail_parameters (stream,GET_FETCHLOOKAHEAD,(void *) stream);
578 *set = pointer to desired search set
580 New mail_shortdate() routine returns an date in the format expected by
581 SEARCHPGMs.
584 Updated: 2 November 2001
586 imap-2001a is a maintenance release, consisting primarily of bugfixes
587 including some critical bugfixes to crash and denial of service problems.
588 Programs written for imap-2001 will build with this version without
589 modification.
591 The following new facilities have also been added:
593 The new /norsh switch in mailbox names provides a more intuitive way of
594 disabling rsh-IMAP than the existing :143 or setting the rsh-timeout to 0.
596 Passwords are no longer returned in mm_dlog() callbacks unless the
597 application sets the SET_DEBUGSENSITIVE parameter.
599 The SET_NETFSSTATBUG parameter allows an application to force the
600 traditional UNIX mailbox driver to close and reopen the mailbox at ping
601 time. This is EXTREMELY inefficient, and should only be used to access
602 files stored on AFS and old NFS systems.
604 The ISO 8859 and Windows conversion tables have been updated to comply
605 with Unicode 3.1, and the KOI8-R table has been verified as compliant with
606 Unicode 3.1.
608 The SPECIALS mechanism for passing parameters to the lowest level Makefile
609 has been updated to be more general. See the next item for why you might
610 care.
612 New lrh port to build on Red Hat Linux 7.2, with pre-set definitions for
613 the places where Red Hat has placed Kerberos and SSL. It's actually just
614 the lnp port with SPECIALS defined accordingly. You may want to use it as
615 a model if your system needs such definitions. Note that SPECIALS is
616 primarily for IMAP toolkit (and Pine) purposes, and that user settings
617 should use EXTRASPECIALS instead.
620 Updated: 22 June 2001
622 imap-2001 is a major release. Programs written for imap-2000 will probably
623 build with this version without modification.
625 The FAQ document has been significantly expanded. Be sure to read it for
626 more information.
628 In addition to the usual bugfixes, the following features are new in
629 imap-2001:
631 SSL is now fully integrated into the IMAP toolkit; the old "alt" kludges to
632 be able to produce a "sanitized" version of the IMAP toolkit to comply with
633 late unlamented US export regulations are now completely gone.
635 Full client and server TLS support is also in this release.
637 The server certificate must be signed by a trusted certificate authority and
638 the name in the certificate match the user's entry for the server host name;
639 this means that the user must enter a fully-qualified host name.
641 To build with SSL/TLS on UNIX, you now use "SSLTYPE=unix" instead of the
642 former "SPECIALAUTHENTICATORS=ssl". To build with SSL/TLS on UNIX and disable
643 the use of plaintext passwords except when under SSL/TLS, use "SSLTYPE=nopwd"
644 instead of "SSLTYPE=unix".
646 RFC 1730 (IMAP4 as opposed to IMAP4rev1) support is turned off by default in
647 imapd. No clients should still be using RFC 1730 protocol. Look at the imapd
648 Makefile for how to re-enable RFC 1730 support. Note that this code may be
649 removed in the future, so if you think you need it you had better let me know.
651 There are some new options (turned off by default) which attempt to work around
652 problems in certain clients. See the FAQ file for more details.
655 Updated: 24 January 2001
657 imap-2000c is a maintenance release, consisting primarily of bugfixes.
660 Updated: 9 January 2001
662 imap-2000b is a maintenance release, consisting primarily of bugfixes.
665 Updated: 9 November 2000
667 imap-2000a is a maintenance release, consisting primarily of bugfixes.
670 Updated: 19 September 2000
672 imap-2000 is a major release. There are major internal and external changes
673 from earlier versions (imap-4.x and imap-3.x series). Programs written for
674 imap-4.x will probably build with this version without modification. It is
675 extremely unlikely that a program written for imap-3.x or earlier series will
676 build with this version without modifications. Drivers written for earlier
677 versions will definitely need to be rewritten.
679 In addition to the usual bugfixes, the following features are new in imap-2000:
681 SSL support is now available. For UNIX, it is necessary to install some
682 version of OpenSSL; see imap-2000/docs/SSLBUILD for more information. SSL
683 support is now automatic for the NT, NTK, and W2K ports. SSL use is indicated
684 by the /ssl switch in the mailbox name.
686 With SSL connections, the server certificate is validated by the client code
687 on UNIX, and Windows 2000 unless /novalidate-cert is specified. Server
688 certificates are currently is not validated on Windows 9x, Windows Millenium,
689 or Windows NT 4; this is an artifact of the operating system and not the port
690 (e.g. client code using the NT port will validate certificates if running on
691 Windows 2000). On UNIX, the server certificate must be signed by a trusted
692 certificate authority. On Windows 2000, the certificate must be signed by a
693 trusted certificate authority and match the user's entry for the server host
694 name; this means that the user must enter a fully-qualified host name.
696 Calendar reclama for the benefit of old broken non-Y2K compliant software.
697 Two digit years from 00 to 69 will be interpreted as 2000 through 2069. In
698 addition, three digit years from 100 to 105 will be interpreted as 2000
699 through 2005.
701 Support for REFERENCES threading (in addition to the previously-existing
702 ORDEREDSUBJECT threading).
704 Support for the IMAP MULTIAPPEND extension. This allows much faster uploading
705 of multiple messages to an IMAP server.
707 Support for the LOGINDISABLED IMAP capability. If the IMAP server sends
708 LOGINDISABLED as a capability, the client code will never attempt to send an
709 IMAP LOGIN command.
711 Support for SASL authentication identity vs. authorization identity. If the
712 authentication method does not support this concept (e.g. AUTH=CRAM-MD5,
713 AUTH=LOGIN, LOGIN command), the "*" character in the user name may be used to
714 indicate a separate authentication identity; for example, "fred*joe" indicates
715 authorization identity "fred", authentication identity "joe".
718 UNIX-specific Changes:
720 Support for SASL authentication identity vs. authorization identity in the
721 IMAP and POP3 servers. If the user indicated by the authentication identity
722 is in the "mailadm" group, he may specify any authorization identity and get
723 logged in as the authorization identity user.
725 If the IMAP and POP3 servers are build with PASSWDTYPE=nul, it will send
726 LOGINDISABLED as a capability and also disable the AUTH=LOGIN and AUTH=PLAIN
727 SASL authenticators.
729 New MAILSUBDIR build option to change the default mailbox directory from the
730 user's home directory to a subdirectory of the user's home directory. See
731 imap-2000/Makefile for more information.
733 New CHROOT_SERVER build option for closed server systems only. If defined, a
734 chroot() call to the user's home directory is done as part of the login
735 process. See imap-2000/Makefile for more information.
737 New ADVERTISE_THE_WORLD build option which will add an IMAP namespace that
738 points to the root. Not for the faint of heart.
740 UNIX format mailboxes no longer require the pseudo-message, nor will a
741 pseudo-message be added to a mailbox that does not have one. A new
742 X-IMAPbase: header will be written in the first message. This is rather less
743 efficient and robust than the pseudo-message (which remains the encouraged
744 mechanism; UNIX format mailboxes will always be created with it), but perhaps
745 will pacify some people who get upset by the pseudo-message.
747 When building with MIT Kerberos it will try to detect and use libk5crypto.a
748 instead of libcrypto.a.
750 The mbx driver is more aggressive about cleaning up expunged messages that
751 couldn't be purged because of shared access to the mailbox at the time of
752 expunge. Now, every checkpoint will try to purge such messages; and a
753 checkpoint is attempted at close time.
756 Windows-specific Changes:
758 New W2K port for Windows 2000. In addition to supporting SSL using the
759 official SSPI interface (the NT and NTK ports invoke SChannel.DLL directly),
760 the W2K port also supports Microsoft Kerberos. Note that the NT and NTK ports
761 will work on Windows 2000, but the W2K port will not work on NT4, Windows
762 9x, or Windows Millenium.
764 There is now a #user namespace, equivalent to the "~" namespace on UNIX.
768 Changes for Developers:
770 New c-client.h file which acts as a master include. c-client based
771 applications should now include c-client.h instead of the individual c-client
772 files (mail.h, misc.h, etc.). It is believed that c-client.h will work in C++
773 applications.
775 New GET_FREEENVELOPESPAREP/SET_FREEENVELOPESPAREP and
776 GET_FREEELTSPAREP/SET_FREEELTSPAREP function callbacks to free the "sparep"
777 member of the envelope and cache elements, respectively.
779 New OP_MULNEWSRC flag to mail_open() to use multiple newsrc files, and new
780 GET_NEWSRCQUERY/SET_NEWSRCQUERY function callbacks to get the name of the
781 newsrc file for news access.
783 New "secret" nntp_article() function to do the NNTP ARTICLE command; this is
784 generally useful only when chasing news URLs.
786 New GET_HIDEDOTFILES/SET_HIDEDOTFILES feature to suppress file names that
787 start with "." in mail_list() results.

UW-IMAP'd extensions by yuuji