Full list of changes:
* A new message addressing mode '(criteria)' is now available. It uses the
IMAP SEARCH command if possible, and otherwise performs the equivalent
actions locally. This addressing mode is of interest even for those people
who do not use IMAP with nail because it adds powerful generic search
methods, such as a way to search within message bodies.
* The 'folders' command now really works with IMAP accounts. It also accepts
an argument to list the subfolders of a specific folder.
* The new 'headline' variable allows to customize the columns in the header
summary.
* The new 'attrlist' variable allows to customize the attributes column in
the header summary.
* The message flags 'Flagged' (F), 'Answered' (A), and 'Draft' (T) are now
available, for IMAP mailboxes as well as for local folders. See the 'flag',
'unflag', 'answered', 'unanswered', 'draft', and 'undraft' commands and the
'markanswered' variable.
* The 'kill'/'unkill'/'score' commands were added to make messages invisible
on the user's wish.
* It is now possible to define sequences of commands as macros, see the
'define', 'call', and 'undef' commands. Macros can also be automatically
invoked when a folder is opened using the 'folder-hook' and
'folder-hook-fullname' variables.
* The new 'move' and 'Move' commands mark messages for deletion when they
have been successfully transferred to the target folder.
* The new addressing mode '`' selects all messages that were included in the
message list to the previous command.
* The combination of the previous additions allows a score/filter file to be
set up; this is described in the EXAMPLES section of the manual page.
* New 'noop' command to send NOOP to POP3 or IMAP servers.
* The IMAP UIDPLUS extension (RFC 2359) is now used if available on the
server. It speeds up the IMAP cache when copying messages to IMAP folders;
the message is copied directly to the cached target folder then and does
not need to be downloaded again when it is accessed there.
* When an IMAP SELECT command fails and a connection to a folder that is
not located on the same server is made afterwards, the connection to
the old server is properly terminated now.
* Command lines like 'nail -A imap -f @mailbox' now work.
* IMAP or POP3 user names that contain an '@' character, such as 'foo@bar'
in 'imap://foo@bar@hostname', are now handled (Bugreport by Lars
Kellogg-Stedman).
* If the 'autoinc'/'newmail' variables are set and new mail arrives in
threaded/sorted mode, no summary of old headers is printed anymore.
* If new mail arrives and messages are expunged on an IMAP server at the same
time, all of the new messages are now announced correctly.
* The 'inc'/'newmail' commands now set the current message to the first new
message again. This undoes the change made for version 11.1.
* When the 'autoinc'/'newmail' variables are set and new mail arrives, the
'next' command or enter key prints the next message as usual if the current
one has been printed; it printed the current message again in this situation.
* IMAP performance improvement: When new mail arrives, or when messages have
been expunged, metadata is fetched only for the new messages, instead of
fetching it for all messages in the folder again as it was done before.
* IMAP performance improvement: If the header of a message was already
fetched from an IMAP server, nail now uses 'BODY.PEEK[TEXT]' when
fetching the whole message and does not download it again.
* IMAP performance improvement: The CLOSE command is now used instead of
EXPUNGE when a mailbox is quit.
* Cached IMAP performance improvement: When a mailbox is opened and messages
are cached, their sizes and internal dates are taken from the cache.
* The wcwidth() library function is now used to determine the width of
multibyte characters if it is available.
* If $MAIL does not exist and 'emptystart' is set, a proper error message
is printed now, and a following 'account' command succeeds.
* The SSL code compiles with older versions of OpenSSL (e.g. 0.9.6b) again
(Bugreport by Lutz Horn).
Changes since 11.1 include:
* A message thread-oriented mode is now optionally available; cf. the 'thread'
and 'unthread' commands, the 'autothread' variable, and addressing changes.
* It is also possible to sort messages by various other criteria; cf. the
'sort' and 'unsort' commands, the 'autosort' variable, and addressing
changes.
* New 'fullnames' variable: When replying to a message, full names for the
recipients are included if it is set, instead of using the plain email
address.
* New commands 'disconnect' and 'connect'/'online' to switch to disconnected
IMAP mode and back while retaining the current mailbox.
* IMAP GSSAPI authentication was implemented; it has been successfully
compiled with MIT, Solaris, and HP-UX GSS libraries. See the 'imap-auth'
and 'imap-auth-user@host' variables.
* CRAM-MD5 authentication was implemented for IMAP and SMTP. See the
'imap-auth' and 'smtp-auth' variables.
* POP3 APOP authentication is now supported; see 'pop3-use-apop'.
* STARTTLS is now also supported for IMAP and POP3; see 'imap-use-starttls'
and 'pop3-use-starttls'.
* Autodetection of the terminal character set works again (did not work since
10.8).
* The 'showlast' variable works again; it had no effect since version 11.0.
* Made it compile using the HP-UX C compiler again (did not work since 11.0).
* Standard input is now redirected to /dev/null in the child process that
contacts the MTA. A result is that ssl-verify=ask has the same effect as
ssl-verify=strict for SMTP servers, and does not put the terminal in an
indeterminable state anymore.
* The initial connection to IMAP or POP3 servers is now made before the
previous mailbox (if any) is quit. Thus if a server is unreachable, nail
keeps the previous mailbox open instead of getting in a mailbox-less
state.
* Stale cache entries for messages deleted on the server were not removed
in some circumstances.
* The 'inc'/'newmail' commands are now ignored in disconnected mode and no
longer display errors about hidden (uncached) messages.
* The cache now compiles and works on systems that lack fchdir(), such as
some Cray machines (Thanks to Cray-Cyber.org).
* The defaults for /etc/nail.rc have been updated. This will have no effect
on existing installations unless the file is copied by hand.
* Nail does not hang anymore in disconnected mode if a message addressed
with ^ or $ is not cached.
Changes:
* IMAP mailboxes can now be cached locally. See the string variable
'imap-cache' in the manual page. The cache can also be used for
disconnected operation mode, see 'disconnected' and also the '-D'
command line option.
* When nail is notified by the server that messages have been expunged,
the user is informed about this condition even if new messages have
also arrived.
* When the group of variables for an 'account' command contains a variable
prefixed by 'no...' and the related variable is not set, it is not an
error to unset it.
* The 'headers' command has been made faster when operating on an IMAP
mailbox by bundling IMAP requests.
* When a 'folder' command was executed to change from an uncompressed
file to a compressed one, the latter was incorrectly detected as
being read-only.
* Unless one of the 'autoinc' or 'newmail' variables is set, nail does
not actively check for new messages in the current IMAP mailbox before
each prompt. New messages may nevertheless be detected after any
other IMAP command has been issued, so the effect is mostly that
not every nail command causes an IMAP command to be sent. Also if
'autoinc' or 'newmail' are set to the value "noimap", they are
ignored for IMAP mailboxes but still effective for local folders.
* The 'inc' and 'newmail' commands now use the same method to determine
the location of the current message as the 'folder' command does. That
means if there has been new mail before that is still unread when newer
mail arrives, the older messages are displayed first.
* Nail does not generate 'Sender:' fields anymore.
* If OpenSSL is not available, STARTTLS support is not built, and nail
compiles again without OpenSSL.
Changes:
[11.0] released 7/30/04
* IMAP support has been added. It should considered to be in beta state
now, but should not have any disturbing effects on other code unless
it is actually used. (So the version jump does not require vendors to
continue to ship older releases.)
To get started with IMAP, see the manual page for the 'account',
'folder', and 'imap' commands, and for the 'folder' variable, as
well as the EXAMPLES and NOTES sections.
* Support for SMTP AUTH LOGIN was added (contributed by John Fawcett).
* It is now possible to encrypt SMTP with SSL/TLS, using the STARTTLS
method as well as with the SMTPS variant.
* New 'account' command to set groups of variables.
* Line and column limits (used e.g. for the header summary) are updated
when the size of the terminal is changed (handling SIGWINCH).
* If saving an outgoing message to the folder given in the 'record'
variable fails, the message is not sent but put in 'dead.letter'
instead. This rarely happens with local record folders, but is of
concern if 'record' refers to an IMAP mailbox.
* For addresses specified with the ~b, ~c, ~h, and ~t tilde escapes
or by the 'editheaders' method, if a comma, parenthesis, angle bracket,
or quoting character appears, only the comma is accepted as an address
separator. Otherwise, whitespace separates addresses as elsewhere. This
allows the insertion of comments in recipient addresses and more closely
matches the behavior of System V mailx. (Thanks to Ryan Lovett and Hilko
Bengen.)
* An internal version of getopt() is now used to properly work around
system defects such as the option reordering on GNU libc based
systems. If you really prefer the libc version, remove getopt.o from
the list of objects in the Makefile. (Note that nail already worked
around the glibc problem, so unless _your_ patches changed its
behavior, use the new internal getopt() to remain compatible.)
* The undocumented facility to pass sendmail options on the command
line of nail has been removed because it was not compatible with
POSIX and System V. If you need to pass options to sendmail, create
a shell script which invokes it appropriately and let the nail
variable 'sendmail' point to its location.
* Fixed the text of some usage messages (thanks to Christian Reiber).
pkgsrc changes.
* Use USE_INET6.
nail changes.
[10.8] released 6/28/04
* Support for IPv6 is not built by default anymore. There are just too
many hosts on which it doesn't work while the IPv4 functions work
fine. If you have use for IPv6 support and know that it works, enable
it in the Makefile.
* autoconf and automake are no longer used for building. See the file
'INSTALL' which describes the transition of existing build setups.
* The --enable-all-chars configuration option is no longer available. A
run-time nail option variable 'print-all-chars' has been introduced
instead.
* Nail can now handle folders in compressed mbox format. If a file name
given on the command line or with the 'folder', 'copy', and 'save'
commands ends with '.gz' or '.bz2', gzip(1) or bzip2(1) are executed
when reading and writing to it. Likewise, if a folder 'name' does not
exist, but either 'name.gz' or 'name.bz2' are found, the compressed
folder is used. To make use of compressed folders, just compress the
respective mbox format file.
* If the variable SHELL is not set, the default shell is now /bin/sh
instead of csh.
* If the variable EDITOR is not set, the default editor is now 'ed', as
specified by SUSv3.
* Introduced an 'ssl-verify-user@host' variable as an account-specific
variant of 'ssl-verify'.
* Introduced an 'ssl-method-user@host' variable as an account-specific
variant of 'ssl-method'.
* A nested MIME multipart message with a sub-part piped through an external
program (such as HTML with w3m) caused nail to abort after SIGPIPE if the
PAGER command terminated before reading the whole message.
* A 'next' command following a 'hold' command displays the next message
after the one the 'hold' applies to (Bugreport by Mike Sipser). This
might not be exactly what POSIX specifies, but it makes sense and is
consistent with traditional behavior. If you actually favor 'next'
not to advance after 'hold', contact me and I'll add a configuration
option for this.
* If the value of the 'record' variable started with an environment
variable reference such as '$HOME' or with a tilde and the 'outfolder'
variable was set, it was not expanded correctly (Bugreport by Volker
Kuhlmann).
from Gunnar Ritter):
* A missing #ifdef HAVE_ICONV caused build errors on platforms without
iconv() support (J.A. Neitzel, Jens Schleusener, Lars Kellogg-Stedman,
Felicia Neff, Chris Pinnock).
* Extraction of parts from header fields with more than 2560 characters
fixed (Lukasz Sznuk, William Cherry).
* Source archive name in nail.spec corrected (Didar Hussain).
* Fixed segmentation violation when encountering multipart header fields
that contain no ':' character (William Cherry).
* Respect the 'allnet' variable when comparing strings in message lists.
* IPv6 support (Jun-ichiro itojun Hagino).
mail/nail.
Nail is a mail user agent derived from Berkeley Mail 8.1. It is
intended to provide the functionality of the POSIX.2 mailx command
with built-in support for MIME messages. This means it can handle
international character sets as well as attachments. In recent
system environments, nail is Unicode/UTF-8 capable. It further
contains some minor enhancements like the ability to set a "From:"
Address.
Supplied (for nail 10.1) by Mishka in PR#19112. Thanks!