#
# NEWS - Release notes for nmh 1.8
#

Welcome to nmh, the new version of the classic MH mail handling system.
It's been nearly five years since the last release of nmh, and there have
been a number of significant changes since that last release.  Long-time
MH and nmh users should read carefully the NOTABLE CHANGES section, as
there are some significant changes to nmh behavior.  Otherwise, please
see the README and INSTALL files for help on getting started with nmh.

This release is dedicated to Norman Z. Shapiro, co-designer of the MH
Message Handling System.  MH is the predecessor of nmh.  Norm was an
active supporter of nmh development until he passed away in October of
2021.  We are most grateful to Norm for his stewardship of MH and nmh.
    https://en.wikipedia.org/wiki/Norman_Shapiro

For news of future releases, subscribe to the low-volume
    https://lists.nongnu.org/mailman/listinfo/nmh-announce

---------------
NOTABLE CHANGES
---------------

- Support for Content-MD5 header fields, MIME content cache functionality,
  and the message/partial MIME type have been removed.
- Gmail OAuth2/XOAUTH support for desktop applications has been effectively
  dropped, so nmh no longer supports it.  nmh support for Gmail API access
  is experimental, please post to nmh-workers@nongnu.org if you'd like to
  help with test and development.
- repl(1) -convertargs now allows editing of the composition draft between
  translation and any encoding of text content.  Because encoding can wrap
  long lines, the use of a paragraph formatter has been removed from
  mhn.defaults.

------------
NEW FEATURES
------------

- The default editor has been changed from 'vi' to 'prompter', to align with
  historical practice and reduce packaging dependencies on external programs.
- A new -checkbase64 switch has been added to mhfixmsg(1).
- inc(1)/msgchk(1) now support STARTTLS for the POP protocol.
- All TLS-supported protocols now will send the SNI (server name indicator)
  TLS extension.
- A new mh-format function %(ordinal) has been implemented to output the
  appropriate ordinal suffix for numbers.  Example: "%(num 22)%(ordinal)"
  will output "22nd".
- show and mhl now decode more addresses in header fields.
- Added warning from all programs that read the profile if the profile
  contains a post entry, which is ignored, but does not contain a
  postproc entry.  In other words, if you get this warning and want
  to suppress it, your options include:
  1) Remove your post profile entry.
  2) Make your post profile entry a comment by prepending it with the #:
     comment indicator.
  3) Add a postproc entry that points to the post that you use.  That can
     be viewed with "mhparam postproc".
- scan(1) -file argument can be a Maildir directory.
- Updated mhn.defaults to prefer mpv(1) over xv(1) and replace mpeg_play(1),
  and to use it for all video types, not just video/mpeg.  And prefer all
  other searched-for pdf viewers over acroread(1).
- Added mhshow-suffix-video.mp4 to mhn.defaults, for use by mhshow(1) and
  send(1).
- Removed support from mhn.defaults for application/x-ivs and text/richtext.
- Changed interpretation of argument to mhfixmsg(1) -decodeheaderfieldbodies
  switch to specify character set of the decoded field bodies.
- repl(1) -convertargs now allows editing of the composition draft between
  translation and any encoding of text content.
- install-mh(1) now enables the mh-draft(5) draft folder facility.

-----------------
OBSOLETE FEATURES
-----------------

- The generation and verification of a Content-MD5 field has been removed
  without deprecation.  The related -check and -nocheck options now error.
- The MIME content cache functionality has been mostly non-functional since
  the development on nmh, and consequently all of the content caching code
  and related switches (-cache/-rcache/-wcache) have been removed.
- Support for generating and reassembling message/partial messages has been
  removed; it seems that this has been broken since 1.5 and there is very
  little support across MUAs.
- Marked Gmail OAuth2/XOAUTH support as being unsupported.
- Support for the MHPDEBUG environment variable was removed.  It was
  deprecated in nmh 1.7.  The pick(1) -debug switch replaced it.
- The 'libdir' mhparam(1) component was removed.  It was deprecated in
  nmh 1.7, when it was replaced by a new 'libexecdir' component.

---------
BUG FIXES
---------

- Fixed bcc to work with sendmail/pipe, and better documented that dcc
  doesn't work with it [Bug 55700].
- An -attendee switch has been added to mhical(1), for use when more than one
  (or zero) attendees match a user's mailbox.
- Fixed inc(1) and %(me) function escape to not obey Local-Mailbox profile
  component.
- Fixed source charset in mhfixmsg textcharset verbose output.
- Fixed mhfixmsg charset determination of content added with -reformat.
- Fixed file descriptor leak in mhfixmsg when run on multiple input files.
- Fixed mhfixmsg(1) -decodeheaderfilebodies to support mixed encoded/undecoded.
- Fixed memory corruption in post(1) and inc(1) when using XOAUTH2,
  with 4 or more entries in the oauth-authservice file.
- Added alias expansion to From: address for use by sendfrom.
- Removed extra space added before header field bodies by dist(1) to $mhdraft.
- Fixed display of iCalendar object with multiple VEVENTS using a VTIMEZONE.
- Fixed allowable encodings with MIME message types to get closer to RFC 2046.
- Detect other files regardless of backup prefix [Bug #49476].
- Copy if hard link by refile(1) or send(1) fails with EACESS [Bug #56575].

----------------------------------------------------------------------------

#
# NEWS - Release notes for nmh 1.7
#

Welcome to nmh, the new version of the classic MH mail handling system.
It's been over three years since the last release of nmh, and there have
been a number of significant changes since the last release.  Long-time
MH and nmh uses should read careful the NOTABLE CHANGES section, as there
are some significant changes to nmh behavior.  Otherwise, please see the
README and INSTALL files for help on getting started with nmh.

For news of future releases, subscribe to the low-volume
    https://lists.nongnu.org/mailman/listinfo/nmh-announce

---------------
NOTABLE CHANGES
---------------

The largest notable changes in the 1.7 release are:

- Complete unification of network security support.  All network protocols
  (currently, POP and SMTP) have been refactored to use a common set of
  security routines.  This means all protocols support all SASL mechanisms
  (via the Cyrus-SASL library) and TLS.  TLS support has been strengthened
  to perform certificate name validation and to require TLS 1.1 as a
  minimum protocol.  Also, all protocols can make use of the OAuth2/XOAUTH
  SASL mechanism, which is supported by Gmail.
- send(1) now supports adding switches to post(8) based on the address or
  domain of the email address in the From: header; this more easily allows
  users to support multiple identities.
- A generic facility for passing arguments to filter programs in repl(1)
  by use of the -convertargs switch.
- Native support for the manipulation of iCalendar requests; see mhical(1)
  for more details.

------------
NEW FEATURES
------------

The following are new features for the 1.7 release of nmh:

- When building from source, configure will derive ${prefix} from an existing
  nmh installation if it finds one in your $PATH.
- Added welcome message when nmh detects that its version changed.
- The default locations for configuration files and support binaries
  have been changed.  Configuration files now install into ${sysconfdir}/nmh,
  and support binaries are placed in ${libexecdir}/nmh.  If you are upgrading
  an existing installation you should look for old configuration files in
  ${sysconfdir} and merge any local customizations into the new files in
  ${sysconfdir}/nmh, then remove the old files.  ${libdir} will also contain
  obsolete support programs that should be removed.
- All TLS connections now perform certificate validation (including hostname
  matching) by default; can be disabled on a per-application basis.
- post now defaults to port 587 on 'smtp' message submission.
- A value of 0 for the width switch of scan(1), inc(1), ap(1), dp(1),
  fmttest(1), and mhl(1) now means as many characters as the format
  engine can produce [Bug #15274].  That amount is limited by internal
  buffers.
- If a component has trailing whitespace, e.g., body:component="> ",
  mhl now trims that whitespace off when filtering blank text lines.
- An "rtrim" flag has been added to mhl to remove any trailing
  whitespace from filtered text lines.  A corresponding "nortrim" flag
  has also been added.
- Added getmymbox and getmyaddr mh-format(5) function escapes.
- New -[no]changecur, -fixtype, -decodetypes, and -[no]crlflinebreaks switches
  have been added to mhfixmsg(1).
- mhfixmsg now removes an extraneous trailing semicolon from header
  parameter lists.
- Added -convertargs switch to repl(1), to pass arguments to programs
  specified in the user's profile or mhn.defaults to convert message
  content.
- Added mhical(1), to display, reply to, and cancel iCalendar (RFC 5545)
  event requests.
- Added multiply mh-format(5) function.
- "mhparam bindir" prints the path to the directory containing the public
  executables (${bindir}).
- New "-prefer" switch for mhshow (and mhlist and mhshow), to allow specifying
  the preferred content types to show, if present in a multipart alternative.
- mh-format now has %(kilo) and %(kibi) functions, to allow printing
  numbers with SI or IEC quantities, e.g. "10K", "2.3Mi".
- Support for the -sendmail flag to send/post to change the sendmail
  binary when using the sendmail/pipe MTS.
- Added support to send(1) to specify switches to post(1) based on address or
  domain name in From: header line in message draft.
- post(8) -snoop now attempts to decode base64-encoded SMTP traffic.
- folder(1) -nocreate now prints a warning message for a non-existent folder.
- mhfixmsg(1) now allows -decodetext binary, though 8bit is still the default.
- inc(1) and msgchk(1) now support TLS encryption natively.
- All network protocols support the XOAUTH authentication mechanism.
- Support for SMTPUTF8 (RFC 6531) has been added.  mhshow(1) already supported
  RFC 6532, assuming all 8-bit message header field bodies are UTF-8 and use
  of a UTF-8 locale.
- mhfixmsg now replaces RFC 2047 encoding with RFC 2231 encoding of name and
  filename parameters in Content-Type and Content-Disposition headers,
  respectively.
- If a message body contains 8-bit bytes, post(8) uses SMTP 8BITMIME if the
  server supports it.  If not, post fails with a message to the user to
  encode the message for 7-bit transport.
- Fewer lseek(2)s will be used when reading headers in the common case.
- ./configure's --enable-debug has been removed;  it did nothing.
- configure now defaults to enabling each of TLS and Cyrus SASL if the
  necessary headers and libraries are found.
- Moved build_nmh to top-level directory.
- Better error reporting for connections to network services.

---------
BUG FIXES
---------

- The format scanner no longer subtracts 1 from the width.  This has the
  effect of no longer counting the trailing newline in the output of
  scan(1), inc(1), and the other programs that rely on the format scanner.
- The first character of some very short (less than 4 characters) message
  bodies is no longer dropped.
- Single-character headers can be reliably formatted, etc., instead of
  apparently being missing.
- mhfixmsg now adds a Content-Transfer-Encoding header at the message level,
  if needed after decoding text parts.
- mhbuild now checks whether all text parts need a Content-Transfer-Encoding
  header, not just those with a character set not specified.
- mhbuild no longer parses lines that start with # as directives with
  -nodirectives.
- repl now makes sure that any Fcc header in a replied-to message is not
  copied into the outgoing draft by default, and that the -fcc switch
  actually works in the absence of a Fcc header in the replied-to message.
- A Content-ID is generated for message/external-body entities as required
  by RFC 2045, even if -nocontentid is supplied to mhbuild.
- post will now expand aliases on a "From" line when doing a BCC [Bug #51098].
- scan can now handle empty files without violating an assert [Bug #51693].
- An error when writing an error message, e.g. EPIPE, no longer causes
  recursion until the stack is exhausted.
- rcvdist(1) now passes switch arguments to post(8).
- The uses of %{charset} in mhn.defaults were wrapped with double quotes.

-------------------
DEPRECATED FEATURES
-------------------

- Support for the MHPDEBUG environment variable is deprecated and will be
  removed from a future nmh release.  Instead, use the -debug switch to pick.
- With the move of support binaries from ${libdir} to ${libexecdir}/nmh, the
  mostly undocumented 'libdir' mhparam(1) component has been replaced by a
  new 'libexecdir' component.  'libdir' will be removed in a future release.

-----------------
OBSOLETE FEATURES
-----------------

- The undocumented -queue switch to post was deprecated in nmh 1.6, and was
  removed in this release.
- conflict(8) was deprecated in nmh 1.6, and was removed in this release.
- mhtest(8) was deprecated in nmh 1.6, and was removed in this release.
- msh(1) was deprecated in nmh 1.6, and was removed in this release.
- Support in alias files for the the "*" address-group (everyone) was
  deprecated in nmh 1.6, and was removed in this release.
- Support for multiple hostnames in the "servers" entry of mts.conf has
  been removed.
- Support in alias files for expanding aliases based on group membership
  (=) and primary group (+) has been removed.

As always, feedback is welcome.

--
The nmh team
nmh-workers@nongnu.org

----------------------------------------------------------------------------

#
# NEWS - Release notes for nmh 1.6
#

Welcome to nmh, the new version of the classic MH mail handling system.
It's been nearly two years since the last release of nmh, and there have
been a number of significant changes since the last release.  Long-time
MH and nmh uses should read careful the NOTEABLE CHANGES section, as there
are some significant changes to nmh behavior.  Otherwise, please see the
README and INSTALL files for help on getting started with nmh.

------------
NEW FEATURES
------------

The following are new features for the 1.6 release of nmh:

- All nmh programs will now warn about multiple profile entries for
  the same non-null, non-comment component.  In previous versions, all
  but the first were silently ignored.
- mhmail now supports all post(8) options, or optionally can use
  send(1) with all of its options.  Its formerly undocumented -resent
  switch has been documented.  And it has new -attach, -headerfield,
  and -send/-nosend switches.
- Default to flock() locking on OpenBSD and Darwin.
- Added -directives support to mhbuild(1) to control whether or not
  mhbuild will honor MIME directives by default.  And added support
  for special #on/#off/#pop directives to control the MIME directive
  processing state.
- Added -messageid switch to send(1) and post(8).  This allows
  selection of the style to use for generated Message-ID and
  Content-ID header fields.  The default localname style is
  pid.time@localname, where time is in seconds, and matches previous
  behavior.  The random style replaces the localname with some
  (pseudo)random bytes and uses microsecond-resolution time.
- Added -clobber switch to mhstore(1) to control overwriting of
  existing files.
- Added -outfile switch to mhstore(1).
- Added -noall/-all switches to sortm(1).  sortm -noall requires
  a messages argument.
- $PAGER overrides the compiled-in default pager command.
- Added etc/scan.highlighted format file, as an example of how to
  highlight/colorize the output of scan(1).
- inc(1) now supports a -port switch to specify the port used by the
  POP server.
- pick(1) now decodes MIME-encoded header fields before searching.
- The VISUAL and EDITOR environment variables are now supported as fallbacks
  if the user does not configure an editor entry in their profile.
- The format engine (mh_format(5)) now properly accounts for multibyte
  characters when accounting for column widths.
- burst(1) now can burst MIME-formatted digests (messages that contain
  message/rfc822 parts instead of messages formatted with RFC 934).
- All proc entries (showproc, moreproc, etc) can now accept entries that
  contain spaces and shell metacharacters.  If found, such entries will
  either be space-split or processed by /bin/sh.
- A new program, fmttest(1) is included to help debug format files.  See
  NOTABLE CHANGES below.
- mhshow/mhstore now have support for RFC-2017 (access-type=url) for
  external message bodies.
- Added -retainsequences switch to refile(1).
- A new program, mhfixmsg(1), is included to rewrite MIME messages with
  various transformations.  See NOTABLE CHANGES below.
- Added -[no]rmmproc switches to rmm(1).
- Added support for Content-Disposition header (RFC 2183) to mhstore(1)
  and mhn(1) when used with -auto.
- All nmh commands now support transactional locking for sequence files.
  See NOTABLE CHANGES below.
- There is no longer a per-folder maximum number of sequences.
- For the SMTP MTA TLS can now be negotiated at the beginning of the
  connection with the -initialtls switch.
- Messages can now be selected using a relative offset from some other
  message, or from the start or end of a sequence.  See mh-sequence(5).
- The -changecur and -nochangecur switches have been added to mhlist(1).
- mhbuild(1) can now encode 8-bit message headers using RFC-2047 encoding
  rules.  See NOTABLE CHANGES below.
- The whatnow(1) attach feature will determine the content type of an
  attachment using a program such as file --mime-type, if available at
  configuration time.  If not, it will use mhshow-suffix- entries as
  before.  The -v switch to attach causes it to display the mhbuild
  directive that send(1) will use.
- mhbuild(1) now supports the -auto/-noauto flags (to be used by send(1)
  when invoking mhbuild automatically).
- mhbuild(1) now is automatically run by send, to insure that all outgoing
  messages have proper MIME formatting.  See NOTABLE CHANGES below.
- A new header, "Attach", is supported by mhbuild; it is used to replace
  previous functionality (which by default used a header named
  Nmh-Attachment).  See NOTABLE CHANGES below.
- The default Content-Transfer-Encoding for text parts is now 8bit.
- mhbuild(1) now supports a selectable Content-Transfer-Encoding
- If nmh was configured with iconv(3) support, mhshow will convert, if
  necessary, the charset of text/plain content to match the user's
  locale setting.  See NOTABLE CHANGES below.
- Added support for %{charset} display string escape to mhshow(1).
- The MIME parsing and generating routines now support RFC 2231 extended
  parameter information.
- mh-mime(7) now provides an introduction to nmh's MIME handling.
- mhshow(1) will now by default display all text content under one pager,
  and display markers for non-text and non-inline content.  The content
  markers are changeable via mh-format(5).  See NOTABLE CHANGES below.

-----------------
OBSOLETE FEATURES
-----------------
- Changed exit status of each nmh command's -version and -help
  switches from 1 to 0.
- The following environment variables were deprecated in nmh 1.5
  and removed from this release:
    MHPOPDEBUG (use -snoop command line switch instead)
    MM_NOASK (use -nolist and -nopause command line switches instead)
    NOMHNPROC (use -nocheckmime command line switch instead)
    FACEPROC (undocumented faceproc feature removed)
- Changed repl and dist default to -noatfile.  The default of -atfile
  was deprecated in nmh 1.5.  If there are no requests to maintain
  -atfile, it will be removed in the future.
- The undocumented -queue switch to mhmail has been removed.
- spost(8) has been merged into post(8).  Its functionality is enabled
  by selecting the sendmail/pipe mail transport method, described in
  the mh-tailor(5) man page.  The spost -noalias, -backup/-nobackup,
  -push/-nopush, and -remove/-noremove switches are not supported by
  post.  Note that spost did not support -whom or Dcc, and neither
  does post when using sendmail/pipe.  And spost would expand blind
  aliases and send them in the message; post with sendmail/pipe
  refuses to do that.  For backward compatibility, spost has been
  replaced by a simple shell script that exec's post -mts
  sendmail/pipe.  See NOTABLE CHANGES below.
- Support for the undocumented and deprecated --enable-nmh-debug configure
  flag has been removed.
- Support for encoding some characters designated as EBCDIC-unsafe
  via the -ebcdicsafe and -noebcdicsafe switches to mhbuild has
  been removed.
- The configure flag --with-pager has been removed; the default pager
  is now hardcoded as "more".  Users are still free to override the
  default using the PAGER environment variable or entries in .mh_profile.
- The configure flag --with-editor has been removed; the fallback editor
  if none is configured is "vi".
- The support for the undocumented NOPUBLICSEQ preprocessor definition
  to disable public sequence support has been removed.
- Support for the -normalize and -nonormalize switches to the ali(1) and
  ap(8) commands has been removed.
- "make install" no longer strips executables.  Use "make install-strip"
  instead.
- The environment variable MM_CHARSET to indicate the native character
  set is no longer supported.  The native character set will be solely
  determined by the locale settings.
- Temporary files are stored in the first non-null location of
  {MHTMPDIR environment variable, TMPDIR environment variable, MH Path}.
  They are no longer be stored in the location specified by the TMP
  environment variable.
- Instead of printing PostScript attachments, by default, from mhshow,
  try to find a suitable viewer.
- Support for parallel display of multipart/parallel content has been
  removed from mhshow; all multipart content will be displayed in
  serial.
- Support for -pause/-nopause switches on mhshow has been removed.

-------------------
DEPRECATED FEATURES
-------------------
- The undocumented -queue switch to post is deprecated/obsolete
  and will be removed in the next release.  It supports the
  SMTP XQUE verb, which is obsolete according to
  http://smtpfilter.sourceforge.net/esmtp.html
- conflict(8) is deprecated and will be removed from the next release.
- mhtest(8) is deprecated and will be removed from the next release.
- msh(1) is deprecated and will be removed from the next release.
- Support in alias files for the the "*" address-group is obsolescent
  and will be removed in a future release.

---------
BUG FIXES
---------

- Replaced utilities that operate on pbm files with those that operate
  on pnm files in etc/mhn.defaults [Bug #15152].
- Removed obsolete BUGS section at end of rcvstore(1) man page [Bug #4361].
- Fixed -nocc me doesn't account for Alternate-Mailboxes [Bug #36635].
- Propagate Mail-Followup-To [Bug #5571].
- "mark -sequence cur -delete all" now works for cur as well as any
  other sequence, to allow clearing of the current message indication.
- The first alias contained in a blind list is now expanded.  The
  mh-alias(5) man page was updated to show that blind lists must not
  be terminated with, or contain, a trailing semicolon [Bug #15604].
- Fixed sendfiles(1) to always provide a From: address.  Also, updated
  its switches.
- Fixed pick(1) to properly unfold multiple-line header fields by
  removing newlines instead of replacing them with spaces [Bug #15215].
- Removed the artificial limit of 1000 messages at a time for rmmproc.
- Fixed decoding of header fields when they contain a character that
  can't be converted.
- post(8) -sasl now honours username in .netrc [Bug #23168].  whom(1),
  send(1), inc(1), and msgchk(1) also benefit from this fix.  And, nmh
  now supports specification of any valid filename in place of
  $HOME/.netrc.
- Added quoting of local part of invalid address in message being
  replied to [Bug #26780].
- Fix segmentation faults for %(putlit) and %(zputlit) format escapes when
  the "str" register was NULL.
- Encode and decode text MIME types with canonical line breaks properly.
- mhstore(1) now obeys its -noverbose switch.
- Properly report the input filename when mhbuild encounters errors.
- Set the content-transfer-encoding properly when attaching message/rfc822
  content.

---------------
NOTABLE CHANGES
---------------

The biggest changes in this release are in the arena of MIME handling.
Specifically relating to MIME composition and display.  On the
composition front, mhbuild(1) will now automatically be run by send(1)
for all drafts.  Specifically, mhbuild is now run with the new -auto
flag, which will suppress the processing of mhbuild directives and cause
mhbuild to silently exit if the draft is already MIME-formatted.  When
invoking mhbuild manually via the "mime" command at the WhatNow? prompt,
mhbuild will behave as before and process mhbuild directives.

In both cases (automatic and manual invocation) mhbuild will encode email
headers according to RFC-2047 rules.  Mhbuild also will use RFC 2231
encoding rules for MIME parameters when appropriate.  In addition, the
attach system has been substantially reworked; the new header name is
now "Attach" (to better align with other MUA behavior) and cannot be
changed by the end-user.  The existing "attach" command simply adds
the filename(s) to the draft in new Attach: headers, and the actual
file processing is done by mhbuild; this attachment processing will
take place in either automatic or manual mode.

On the display front, mhshow(1) will now automatically convert text
into the user's native character set using iconv, if nmh was built
with iconv support.  Also, mhshow will now by default only display
text content that was not marked as an attachment.  By default all
displayed content wll be run under one pager, as opposed to individual
pagers for each part as was in the past.  Non-displayed parts will be
indicated using a marker string, which can be customized by a new
mh-format(5) string.

All nmh utilities now understand RFC 2231-encoded MIME parameters and
will automatically convert the encoded parameters into the native
character set, when appropriate (again, assuming nmh was built with
iconv support).

In other changes, sequence files are now locked using transactional
locks: locks that are held across sequence file reading, modification,
and writing.  The locking algorithm used for spool files and nmh data
files is now runtime configurable.

For people that struggle with mh-format(5) files, a new utility for testing
them has been developed: fmttest(1).  It includes the ability to trace the
execution of format instructions.

For users that wish to use Unix utilities on their mail, a new utility
to transform MIME messages to more easily-digestable format is now
available: mhfixmsg(1).  It supports a number of options to control
the message transformation.

For users of spost(8), the support for spost has been rolled into post(8)
under a new sendmail/pipe MTS.  A shell script emulating the old behavior
of spost has been provided.

As always, feedback is welcome.

--
The nmh team
nmh-workers@nongnu.org

----------------------------------------------------------------------------

#
# NEWS - Release notes for nmh 1.5
#

Welcome to nmh, the new version of the classic MH mail handling
system.  Long-time MH and nmh users should read carefully the NOTABLE
CHANGES section, as there are some subtle but significant changes
to the way nmh now behaves.  Otherwise, please see the README and INSTALL
files for help on getting started with nmh.

------------
NEW FEATURES
------------

The following are new features for the 1.5 release of nmh.

- Improved performance for TLS encryption of the SMTP protocol.
- MH-E and POP support are now always compiled in.
- The selection of a locking directory for dot-locking files is now
  controllable via configure.
- fileproc and mhlproc mh-profile are now obeyed by send, rcvdist,
  and whatnow.
- New mh-format instructions have been implemented: %(putlit),
  %(concataddr), %(myhost), %(myname), %(localmbox).  See mh-format(5)
  for more details.
- Nmh's idea of the local mailbox is now configurable via a new profile
  entry, Local-Mailbox.  See mh-profile(5) for more details.
- comp, forw, and dist now process all component templates through
  mh-format(5), and now all support new command line arguments -from,
  -to, -cc, -fcc, and -subject.
- burst(1) now supports any valid message delimiter according to RFC 934.
- post(8) now requires a From: header in all drafts that it processes;
  see NOTABLE CHANGES below for more details.
- post(8) can now explicitly control the SMTP envelope address either via
  the Sender: header or the new Envelope-From: header.
- The -attach option is now the default for send (using the header
  Nmh-Attachment) and -attachformat 1 is the default attachment type.
- repl and dist now support new switches -atfile and -noatfile to control
  the creation of the ./@ link to the message being replied or
  redistributed.  The current default is -atfile.
- Support (if available) for readline editing and filename completion at
  the WhatNow? prompt.
- Support for using an external command to filter the body of a message
  through in mhl.  See mhl(1) for more details, specifically, the
  "format" keyword, the "formatproc" entry in mh-profile(5), and the
  -fmtproc switch for mhl and repl.
- Preliminary support for improved MIME handling when replying to messages!
  Yes, a long requested feature has a solution.  A perl script
  called replyfilter is available; it is designed to act as a mhl
  external filter to process MIME messages in a more logical way.
  It is available in $(srcdir)/docs/contrib/replyfilter or is
  typically installed as $(prefix)/share/doc/nmh/contrib/replyfilter.
  See the comments at the top of replyfilter for usage information;
  it will likely require some adjustment for your site.  replyfilter
  requires the MIME-Tools and MailTools perl modules.

----------------------------
OBSOLETE/DEPRECATED FEATURES
----------------------------

The following features have either been removed completely or marked
as officially deprecated for removal in a future release of nmh.

- The creation of the ./@ link to the message being replied or
  redistributed is deprecated; -noatfile will be the default in the
  next release.  If there are no requests to maintain -atfile it
  will be removed in a future release.
- Old code enabled by the UCI preprocessor definition has been removed.
- All configuration options that were formerly only adjustable by editing
  config.h have either been moved into configure or removed completely.
- Support for the built-in ftp client (used when dealing with external-body
  message parts in MIME messages) has been removed.
- The following environment variables are marked as obsolete/deprecated.
  Support for them will be removed from the next nmh release:
    MHPOPDEBUG (use -snoop command line switch instead)
    MM_NOASK (use -nolist and -nopause command line switches instead)
    NOMHNPROC (use -nocheckmime command line switch instead)
    FACEPROC (undocumented faceproc feature to be removed)
- The hostable option of mts.conf is no longer needed and has been removed.

---------------
NOTABLE CHANGES
---------------

The largest change is that post(8) now requires a From: header in all drafts
that it processes.

The impetus for this change has been the evolution of email and client
systems.  When MH was first developed the norm was to have tightly managed
clients that were part of the same domain as a user's email address.  This
is no longer a valid assumption, and the algorithm used by nmh to determine
the user's local mailbox is no longer a reasonable default.

Unfortunately, the way that nmh uses the user's local mailbox used to happen
very late in the message process; it was handled by post during message
submission.  If no From: header exists in the current draft post would
insert one based on it's idea of the local mailbox, which was frequently
wrong.

After a long discussion within the nmh development community, it was
decided that the only reasonable way forward was to move the local mailbox
handling up a level and place it under more direct control of the end
user.  post(8) no longer will try to determine the local mailbox name;
it will take that information from the draft message.  Thus a From: header
is now required in all drafts.

As part of these changes, all message composition utilities now process
their component files using mh-format.  All of the default component
files have been modified to include a From: header in them; this will
give the user a chance to see nmh's idea of the local mailbox and modify
it if desired.  The new mh-profile(5) entry Local-Mailbox can be used
to adjust the local mailbox name if the system default is not appropriate.

So how should end-users adapt to these changes?  Here are some suggestions:

1) If you use the default component files, everything should basically work
   the same for you.  You should see a From: header in the drafts of your
   messages.  If the address you see in the From: header is incorrect
   you can change it via the Local-Mailbox profile entry.  You can also
   use the -from switch to change it on a per-command basis.

2) If you have custom component files that include a From: header or
   you perform custom processing on drafts that end up placing a From:
   header in the draft message, everything should work as before.

3) If you have custom component files that do NOT include a From: header
   then you will have to adapt then to include a From: header.  You
   can either simply hard-code the correct From: header or use the
   default component files as a guide (see mh-format(5) for more
   details, specifically the %(localmbox) function).

The other significant change is the support for filters in mhl.  Included
in the distribution is replyfilter, a filter designed for sane processing
of MIME messages during replies.  Since this isn't as integrated into
nmh as we would prefer, it's included in the contrib directory as an
optional component.  Please try it out and give us feedback.

--
The nmh team
nmh-workers@nongnu.org

----------------------------------------------------------------------------

#
# NEWS - Release notes for nmh 1.4
#

This releases contains numerous bugfixes and a number of new features.
The new features include:

- SASL security layers (encryption) are now supported for the SMTP MTA.
- TLS is now supported for the SMTP MTA.
- inc can now incorporate mail from Maildir drops.
- You can now select the SMTP server and port from either "send" or a
  user's mh_profile (you could always select the server; that option is
  now documented).  These are available via the -server and -port
  switches.
- All networking code has been modified to use the new networking APIs
  (getaddrinfo and friends).  All networking code (with the exception of
  the built-in ftp client) now supports IPv6.
- New commands 'new', 'fnext', 'fprev', and 'unseen' for showing folders
  with unseen mail (or mail in any specified sequence), changing to next
  such folder, changing to previous such folder, and scanning all such
  folders, respectively.  This is based on Luke Mewburn's 'new':
  http://www.mewburn.net/luke/src/new
- nmh will no longer attempt to install a mhn.defaults file that causes
  mhshow to open its own xterms.

A large chunk of old code has been garbage collected.  Specifically,
support for APOP, RPOP, NNTP (including bboards) and MPOP is now gone.
Also gone is support for prefixing a \01 in the "servers" entry in
mts.conf to iterate over all servers on a named network.

----------------------------------------------------------------------------

#
# NEWS - Release notes for nmh 1.3
#

It's been over two years since the 1.2 release; but the changes here are
mostly minor; largely bugfixes.

You should note that we have changed the default configuration to allow
all supported forms of address masquerading. For more details please see
the --enable-masquerade option to configure, and the mh-tailor and post
man pages.
