imapext-2007

view docs/RELNOTES @ 15:d012b9a282d9

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

UW-IMAP'd extensions by yuuji