Electronic Mail Processing
This category gathers projects related to various aspects of electronic mail handling.
To facilitate navigating in this list, projects are categorized by their purpose, authorship, and current state. Each project entry lists the categories it pertains to. Clicking on a category name will bring a listing of all projects in that category.
Additionally, a list of related projects is provided where applicable. Each element in that list is a link to the corresponding project entry.
Clicking on a project's name will bring this project's entry as a separate page (a permalink).
Hovering your mouse over the version information of a project shows the list of changes introduced by that version.
Sort controls below allow you to order the list either lexicographically or by the most recent release date, in both directions.
Using the Search control, you can select projects by name. Shell-style globbing patterns (wildcards) are accepted.
(Return to the project listing)
anubis
** New operation mode: proxy ** Command line option precedence Command line options take precedence over configuration file statements. ** elif statement A familiar `elif' statement is supported, e.g.: if condition-1 action-list-1 elif condition-2 action-list-2 elif condition-3 action-list-3 else action-list-4 fi ** New CONTROL statement esmtp-auth-delayed. When set to `yes', this statement instructs Anubis to postpone ESMTP authentication until MAIL command is issued by the client. This allows to change authentication credentials in the SMTP section (see below). ** SMTP section The new section "SMTP" is invoked each time an SMTP command is received. This section may alter the command's argument, using the "modify command", e.g.: BEGIN SMTP regex :extended modify command [ehlo] "foo.bar.net" if command ["mail from:"] "<(.*)>(.*)" modify command ["mail from:"] "<root@bar.net>\2" fi END It is also allowed to use esmtp-* keywords in this section, provided that `esmtp-auth-delayed yes' is set in the CONTROL section. Changes in the ESMTP authentication credentials take effect if they occur either before receiving MAIL command from the client, or when handling this command, e.g.: BEGIN SMTP if command ["mail from:"] "<smith(\+.*)?@@example.net>" esmtp-auth-id smith esmtp-password guessme else esmtp-auth no fi END ** New keywords: log-facility and log-tag ** Guile output By default Scheme's standard error and output ports are redirected to syslog, using priorities `err' and `warning' correspondingly. ** MySQL options file When using MySQL for Anubis user database, the database parameters and access credentials are read from the file /etc/my.cnf, section "anubis". Additionally, two URL parameters are provided: "options-file", which sets the name of the options file, and "options-group", which sets the name of the group.
An SMTP message submission daemon. It represents an intermediate layer between mail user agent (MUA) and mail transport agent (MTA), receiving messages from the MUA, applying to them a set of predefined changes and finally inserting modified messages into an MTA routing network. The set of changes applied to a message is configurable on a system-wide and per-user basis.
mailfromd
* Default MFL source file suffix The default suffix for MFL files is changed to '.mfl'. In particular, the master script file is now "mailfromd.mfl". This change is intended to avoid confusion with Metafont files, which have suffix '.mf'. As of this version, the new suffix is recommended, but not obligatory: the legacy '.mf' suffix is still supported. If a file 'X.mfl' is not found, mailfromd will look for 'X.mf'. * MFL module search path MFL modules loaded using the "require" or "import" statements are looked up in module search path. Previously, they were searched for in include search path, which created confusion, since include search path is intended for use by preprocessor. To maintain backward compatibility, if mailfromd is unable to find a module in module search path, it will retry the search using include path. This behavior will be maintained during a transitional period (a couple of releases), after which searches in include search path will be discontinued. * Preprocessor configuration Use of preprocessor is configured by the following statement in the main configuration file: preprocessor { # Enable preprocessor. enable yes; # Preprocessor command line stub. command "m4 -s"; # Pass current include path to the preprocessor via -I options. pass-includes false; # Pass to the preprocessor the feature definitions via -D options # as well as any -D/-U options from the command line. pass-defines true; # Name of the preprocessor setup file. Unless absolute, it is # looked up in the include path. setup-file "pp-setup"; } If preprocessor.pass-includes is true, the preprocessor.command setting is augmented by zero or more -I options, thereby supplying it the mailfromd include path. Furthermore, if preprocessor.pass-defines is set, zero or more -D options defining optional features are passed to it (e.g. -DWITH_DKIM) as well as any -D and -U options from the mailfromd command line. Unless the value of preprocessor.setup-file begins with a slash, the file with this name is looked up in the current include search path. If found, its absolute name is passed to the preprocessor as first argument. If the value begins with a slash, it is passed to the preprocessor as is. * New MFL operator: $@ The $@ operator can be used as the last argument in a call to variadic function from another variadic function. It passes all variable arguments supplied to the calling function on to the function being called. E.g.: func x(...) do # do something done func y(string x, ...) do x($@) done In this example, if "y" is called as y("text", 1, 2, 3) it will call "x" as x(1, 2, 3). This operator can also be used with a numeric argument: $@(N). In this case, it will remove first N elements from the argument list and push remaining ones on stack. This is similar to the 'shift' operator in other programming languages, e.g.: x($@(2)) * Data types in variadic function declaration The ellipsis in a variadic function declaration can be preceded by the data type, e.g.: func sum (number ...) returns number For compatibility with previous versions, if the type is omitted, string is assumed. * The void() type cast The void() type cast can be used around a function call to indicate that its return value is ignored deliberately. * mfmod: dynamically loaded modules This new type of mailfromd modules uses dynamically loaded libraries to extend the program functionality without having to modify its code. For a detailed discussion see the manual, section 4.22, "Dynamically Loaded Modules". Three mfmods exist at the time of this writing: - https://www.gnu.org.ua/software/mfmod_ldap/ LDAP searches. - https://www.gnu.org.ua/software/mfmod_openmetrics Open metrics support. - https://www.gnu.org.ua/software/mfmod_prce/ Support for Perl-comparible regular expressions. * Syntax of special handler definitions Special handlers ("begin" and "end", in particular) are now defined using the standard "prog" keyword (similar to milter state handlers): prog begin do ... done prog end do ... done Old syntax is supported for backward compatibility, but causes a deprecation warning. Application writers are advised to update their code. * New special handlers: startup and shutdown These two handlers provide global initialization and cleanup routines. The "startup" handler is run by the master mailfromd process as part of the startup sequence, before the program starts to serve any milter requests. The "shutdown" handler is run when mailfromd is about to terminate. Notice an important differences between "startup"/"shutdown" and "begin"/"end" special handlers. The latter are session specific: they are run at the start and end of a milter session. The former are global: they are run at the program startup and shutdown. The "startup" handler is normally used by mfmod interface modules to load the corresponding shared library. * Use of STARTTLS in callout If TLS is supported by libmailutils, the SMTP callout code will use STARTTLS when offered by the remote server. This is controlled by the smtp-starttls configuration statement. Its possible values are: never Never use STARTTLS. always Always use STARTTLS if offered by the server. ondemand Use STARTTLS only if MAIL FROM: command failed with the code 530 (Authorization required). The default is "ondemand". * Qualified DBM file names in database configuration Argument to database.file statement can be prefixed with "database scheme" to select alternative DBM implementation. For example: database rate { file "gdbm://rate.db"; } See the manual, section 7.11 "Database Configuration" for details. * New command line option: --echo The --echo option allows you to control where the output of the "echo" statement goes in "run" and "test" modes. When used without argument it directs the output to the standard output stream. If an argument is supplied (as in: --echo=FILE), the output goes to the named file. The file will be created if it doesn't exist. Notice, that in the latter case, the use of '=' is compulsory (--echo FILE won't work). * Deprecated configuration statements removed Deprecated configuration statements `lock-retry-count' and `lock-retry-timeout' were removed in this version. Use the `locking' statement instead, e.g. instead of lock-retry-count 10; lock-retry-timeout 1; write locking { retry-count 10; retry-sleep 1; } * Removed support for obsolete features: legacy GeoIP and DSPAM
Mailfromd is a general-purpose mail filtering daemon for Sendmail, Postfix and MeTA1. It is able to filter both incoming and outgoing messages using criteria of arbitrary complexity, supplied by the administrator in the form of a script file. The daemon interfaces with the MTA using Milter or PMilter protocols.
mailutils
* mbox format: don't count terminating empty line as part of the message * Improve performance of the Sieve fileinto action * Improve efficiency of operations on flat mailboxes in append mode * Bugfixes in quoted-printable and fromrd filters * Variois fixes in mbox and dotmail format libraries * Fix compilation with flex version 2.6.1
GNU Mailutils is a swiss army knife of electronic mail handling. It contains a rich set of mail-related utilities and daemons, including pop3d
, imap4d
, sieve
and several domain-specific mail delivery agents.
mbar
Initial release. ========================================================================= Copyright information: Copyright (C) 2016-2019 Sergey Poznyakoff Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the copyright notice and this permission notice are preserved, thus giving the recipient permission to redistribute in turn. Permission is granted to distribute modified versions of this document, or of portions of it, under the above conditions, provided also that they carry prominent notices stating who last changed them. Local variables: mode: outline paragraph-separate: "[ ]*$" eval: (add-hook 'write-file-hooks 'time-stamp) time-stamp-start: "changes. " time-stamp-format: "%:y-%02m-%02d" time-stamp-end: "\n" end:
A flexible mailbox archiver program based on GNU mailutils.
mbar scans the given mailbox folder for mailboxes matching a supplied pattern. For each mailbox found, a set of criteria is applied to its messages. All messages that matched the criteria are then picked and moved to the mailbox of the same name, located in the backup folder. If the destination mailbox doesn’t exist, it is created with the necessary intermediate directories.
mockmta
A simplistic implementation of the SMTP mail transport agent, designed for testing purposes. It behaves almost identically to any real MTA, except that it listens on localhost only and delivers all messages to the given UNIX mailbox file.
smap
* Support for Guile 2.2 * Bugfixes * Improved testsuite
An extendable socket map server with a set of modules and framework for writing new socket maps and testing them.
wyslij-po
* Fix parsing of po header fields * Use the Language header instead of Language-Team. Support for Language-Team and language tables is retained for backward compatibility. * Organizational change: repository moved to git The repository along with links for cloning can be viewed online at http://git.gnu.org.ua/cgit/wyslij-po.git. See https://puszcza.gnu.org.ua/git/?group=wyslij-po for instructions.
Wyslij-po runs basic checking on PO files given in the command line and submits them to the Translation Project robot.