[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

mailutils-3.0 released [stable]

From: Sergey Poznyakoff
Subject: mailutils-3.0 released [stable]
Date: Mon, 07 Nov 2016 09:29:26 +0200


I am pleased to announce the release of GNU mailutils version 3.0.

GNU Mailutils is a protocol-independent framework for email processing.
It provides a set of libraries for doing almost any mail-related task on
any existing mailbox format, using a consistent format-independent API.  

Several tools are built atop of these libraries and included in the package.
Among them are pop3 and imap4 servers, the traditional mailx mail reader,
the sieve mail filtering utility and a complete set of MH utilities that
can be used with GNU Emacs MH-E mode.

Visit for more information.

This release is a result of a major rewrite that took several years.  See
below for a list of noteworthy changes. 

Here are the compressed sources:   (5.7MB)  (3.9MB)   (2.7MB)

Here are the GPG detached signatures[*]:

Use a mirror for higher download bandwidth:

Here are the MD5 and SHA1 checksums:

54ceb3f0c017f13745bafa27bbcafabb  mailutils-3.0.tar.gz
5d33ae2dc849b29273947f28cf7a57ce  mailutils-3.0.tar.bz2
f8a8959ffbb6b51f2d2d592ccb97c6b2  mailutils-3.0.tar.xz
b77f7557f9f28814c8660dafde71908c068025d1  mailutils-3.0.tar.gz
ff6e1d5ab85b0c930ac942f7fa7e5b4364c9404b  mailutils-3.0.tar.bz2
ef37649fe7da70d8b075bf7a45a38626e13af7fa  mailutils-3.0.tar.xz

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

  gpg --verify mailutils-3.0.tar.gz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

  gpg --keyserver --recv-keys 3602B07F55D0C732

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.69
  Automake 1.14
  Bison 2.7
  Makeinfo 5.2

New in this release:

* Important changes

** Main configuration file renamed to mailutils.conf

** IPv6 support.

The core library as well as client and server utilities support
AF_INET6 family of addresses.

** Support for POP3S and IMAP4S in the respective servers.

A single instance of pop3d is able to handle several subservers,
supporting both plain POP3 and encrypted POP3S simultaneously.  The
same holds true for imap4d.

** DBM support reimplemented from scratch.

The most important result of this change is that Mailutils is now able
to handle databases of different formats (e.g. GDBM, Berkeley DB,
NDBM) simultaneously, without need to reconfigure it.  The database
flavor to use is selected at runtime, using `database URL'.  For
example, "gdbm:///etc/mail/aliases.db" refers to a GDBM database.

See <>.

** New utility `mailutils'

Multi-purpose tool which can be of use to users, programmers
and system administrators.  It allows you to retrieve information
about Mailutils configuration, check ACLs and authentication tickets,
list, create or modify DBM files, construct filters of arbitrary
complexity and many more.

See <>.

** Configurable file safety checking

Some files, such as SSL key files, need particular protection, while
others (e.g. users' forward files) don't require it.  Mailutils
configuration allows for configuring what safety checks are required
for each group of files.  Files not meeting the configured criteria
are not used to avoid compromising security.

** Improved debugging and diagnostics

See <>.

** Imap4d underwent a lot of changes to comply to existing RFCs

** Pop3d and imap4d allow for mailbox-independent compulsory locking

This feature is useful for those system administrators who don't wish
to permit simultaneous access to mailboxes, even when the nature of the
mailbox allows that (e.g. maildir).

** SMTPS support.

** Sieve: new extensions

New extension action `pipe' invokes arbitrary external program and
pipes the message (or any part thereof) to it.  

See <>.

A similar test uses the program exit code to decide what to do with
the message.

See <>.

New extension test `list' compares values of mail headers from a
supplied list with a list of values.

See <>.

New extension test `timestamp' compares the value of a structured date
header field with the given date.

See <>.

Implemented the Editheader extension: `addheader' and `delheader' actions.

See <>.

** mail: sending attachments

The mail[x] utility now allows for sending attachments.  Any number of
files can be attached to the composed letter by using the `--attach'
(`-A') options.  The files will be attached in the same order in which
they appear in the command line.  By default, each attachment is
assigned the content type "application/octet-stream" and is encoded
using Base64.  This can be changed using the `--content-type' and
`--encoding' options.  These options affect all attachments that
appear after them in the command line, until next occurrence of the
same option or end of command line, whichever occurs first.  For

  mail -A prog --encoding quoted-printable --content-type text/c \
       -A main.c -A ext.h

Here, the file "prog" will be attached with the content type
"application/octet-stream" and encoding base64, while the files
"main.c" and "ext.h" will be marked with content type "text/c" and
encoded using "quoted-printable" algorithm.

The mail shell provides the following new escapes to handle attachments:

    Lists all attachments.  The output is a numbered list of
    attachments with their corresponding content types and
 ~+ filename [content-type [encoding]]
    Attach the file `filename'.  Optional arguments supply the content
    type and encoding to use instead of the defaults.

 ~^ N
    Delete Nth attachment.

** mail: the -r option

The meaning of the `-r' option has changed.  Now it introduces the
return address to use when sending mail.  This is an incompatible

The return address can also be set from the mail shell, by assigning
to the `return-address' variable, e.g.:

 set return-address "address@hidden"
** MH: improved compatibility with other implementations

** MH inc: new option -moveto

This option instructs the utility to move incorporated messages into
another folder instead of deleting them. It is implemented only for
input folders of type IMAP or IMAPS. A sample usage is:

 inc -truncate -moveto Read -file imaps://

Note the `-truncate' option. 

** MH show and msgchk

Implemented two new programs: show and msgchk.

** MH: multiple sources

The `inc' command is able to incorporate messages from several
source mailboxes. These are specified via multiple `-file'
options, e.g.:

  inc  -truncate \
       -file 'imaps://;moveto=archived' \
       -file pops:// \
       -file /var/mail/root

Additional parameters can be used in URLs supplied with the `-file'

    Moves incorporated messages into FOLDER.  This is similar to the
    `-moveto' option, but applies only to that particular mailbox.
    See the example above.
    Disables the previous `-moveto' option.

    Controls source mailbox truncation.  If BOOL is not given or is
    "yes", the mailbox will be truncated after successful processing.
    If BOOL is "no", the source mailbox will not be truncated.

** MH aliases

The "< FILE" construct has been extended to allow for building the
list of aliases on the fly.  If FILE is an executable file and its
first line begins with a shell interpreter magic (#!/ or #! /), then
instead of being included, such file is run using "/bin/sh -c", its
output is collected and included in the aliases.
** mailutils-config is deprecated.

Use `mailutils cflags' and `mailutils ldflags' instead.  The
mailutils-config is rewritten as a wrapper over these commands.

See <> for more information.

** movemail functionality considerably improved

See <>.

** Support for Kyoto Cabinet DBM.

Kyoto Cabinet is a library of routines for managing a database. It is
the successor of Tokyo Cabinet. Kyoto Cabinet is a free software
licensed under the GNU General Public License.

* Configuration changes

These are of particular interest to installers.

** New configuration options to disable particular groups of utilities.

The `--enable-build-servers' options controls whether servers (such as
imap4d, pop3d, comsat) will be built.  Its counterpart,
`--enable-build-clients' controls whether client utilities will be

The effect of both options is overridden by the `--enable-build-*'
options for particular components.  For example, to build only
the "mail" utility:

  ./configure --disable-build-clients --enable-build-mail

** The --with-mailbindir option

This option changes installation directory for the "mail" utility.

The following command will configure Mailutils to build only a
statically-linked copy of the "mail" utility and install it to

 ./configure \

** DBM options

It is normally not needed to specify --with-gdbm, --with-berkeley-db
or --with-ndbm explicitly.  Configuration will automatically pick up
all available DBM libraries it can use.

The option `--with-dbm' can be used to enable or disable building of
all available DBM interfaces.  Its effect is overridden by `--with-*'
options for particular interfaces.  For example, to build only GDBM
(even if another databases are supported by the system):

  ./configure --without-dbm --with-gdbm

** Nntp client is not yet implemented

** Link with GSASL by default

GSASL is used by several Mailutils components (notably pop3d
and imap4d as well as their client counterparts) for authentication.
Since this version, it is enabled by default if configure detects the
presence of GNU SASL version 0.2.3 or later.

This can be disabled using the --without-gsasl option.

** Experimental features

The C++ bindings are considered experimental and unstable.

* Changes to the library

** Stream support is rewritten from scratch

Stream support is a cornerstone on which the rest of Mailutils is
built.  The new implementation was developed with three main
objectives in mind: reliability, speed and consistency.

** URL support is rewritten from scratch

New URL functions allow both for creating URLs from string
representations and for building them from parts.

** Filter support is rewritten from scratch

Apart from the implementation itself, lots of new filters are
provided.  See <> for a
list of those.

A concept of `filter chains' was introduced, which allows for
creating new filters using existing ones as their components.

See <>, for a description.

** POP client library is rewritten from scratch

The new library provides two APIs: a traditional mailbox API which
hides the particularities of the POP protocol, and POP-specific API,
which allows for writing applications directly accessing POP features.

** SMTP client library is rewritten from scratch

The new library provides a detailed control over the SMTP

** Support for Maildir and MH formats considerably improved.

** The mailbox object contains a `copy' method.

This method copies the requested set of messages into another
mailbox. It is accessed using the `mu_mailbox_msgset_copy' or
`mu_mailbox_message_copy' functions.  So far it is implemented
only for IMAP and IMAPS mailboxes.

** MIME support improved.

** Debugging support considerably improved.

See <>.

** Configuration file support (libmu_cfg) rewritten.

* New Scheme primitives

** mu-mailbox-sync

Synchronizes the changes done to the mailbox with its external

** mu-mailbox-expunge

Similar to mu-mailbox-sync, but also permanently removes messages
marked for deletion.

** mu-mailbox-flush

Marks all messages as seen, and synchronizes the changes with the
mailbox external storage.  Depending on its second argument, removes
messages marked for deletion.

Best regards,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]