The release of the Exim mail server 4.99 has been published, which includes accumulated fixes and new features. The project code is written in C and is distributed under the GPLv2+ license. According to an automated survey of about 500,000 mail servers, Exim's market share is 56% (down from 59.06% a year ago), Postfix is used on 37.45% (34.68%) of mail servers, Sendmail — 3.53% (3.42%), MailEnable — 1.84% (1.81%), MDaemon — 0.40% (0.37%), and Microsoft Exchange — 0.20% (0.17%).
Key Changes:
- Support for the ESMTP command "ATRN" (Authenticated TURN) has been added, allowing the roles of the server and client to be swapped during message delivery. This command can be used to facilitate the delivery of emails to systems with dynamic IP addresses or unstable internet access. Such a system can connect to the SMTP server as a client and then take on the role of the server using the ATRN command to receive accumulated messages. The command can only be used after successful authentication and with an allowed ACL (acl_smtp_atrn).
- Most Exim components can now be built as loadable modules. For example, the JSON and LDAP lookup engines, filters, authentication and routing drivers, PAM, RADIUS, Perl, SPF, DKIM, DMARC, and ARC components, as well as all types of transportation besides SMTP, can be structured as loadable modules.
- The ability to disable support for Exim filters and Sieve at the build stage has been implemented.
- Support for DNS SRV (Service Location Record) records has been added to determine the support of TLS (Transport Layer Security) by mail receivers. servers receivers.
- An experimental build option "EXPERIMENTAL_SPF_PERL" has been added, which includes an alternative implementation of the SPF (Sender Policy Framework) authentication mechanism, using the Perl Mail::SPF module instead of the libspf2 library, which has been encountering maintenance issues.
- An experimental build option "EXPERIMENTAL_NMH" has been added, implementing a lookup engine for checking (the key to connect to is specified, and iroh finds the associated host and establishes an encrypted connection using the QUIC protocol). Direct P2P connections are established whenever possible, but if not, it falls back to using relays, which are also employed for host discovery by keys. You can run your own relay or connect to public relays supported by the community. in the NMH (Net-Masked Hero) store.
- A configuration file setting "tls_early_banner_hosts" has been added to define the hosts to which the "TLS Early Data" (0-RTT) mechanism will be applied for sending the SMTP banner at the stage before completing the TLS connection negotiation.
- An option "sieve_inbox" has been added to specify the name of the mailbox file where messages redirected using the "redirect_router" setting will be saved in Sieve filters.
- A new variable "connection_id" has been added, containing the identifier of the accepted connection. This variable can be used when configuring the output format in the log.
- The events smtp:fail:protocol and smtp:fail:syntax have been implemented, allowing tracking of errors related to the protocol and syntax of SMTP commands.
- The transport "socks_proxy" can now accept an empty string, which will be interpreted as no proxying.
- Variables $dmarc_alignment_spf and $dmarc_alignment_dkim have been added, reflecting the results of SPF and DKIM checks.
- Support for IPv6 connections when accessing MySQL and PostgreSQL databases has been added.
- The sender address (envelope-from) specified in the transport parameters has been allowed for direct deliveries (cutthrough deliveries) and recipient existence checks.
- The ability to use variables and expressions for dynamically generating the "hosts_randomize" options in the "manualroute" router and the "smtp" transport has been added. Similarly, support for dynamically generating the "fallback_hosts" options has been added in all routers and the "smtp" transport.
- An option "log_ports" has been added to the configuration file for filtering ports logged. For example, setting "log_ports = !25 : !587" will log outgoing_port and incoming_interface entries that are not associated with ports 25 and 587.
- The ability to log delivery information about the commands and responses exchanged when establishing an SMTP connection, as well as details about TLS usage during the connection (the "tls_on_connect" tag), has been added.
- An option "no_wr" has been added to disable caching the results of lookup operations.
- A command line option "-dS" has been added for outputting debugging information before parsing the configuration file.
- Tags "H=" and "U=" reflecting the host and username have been added to the log for messages related to authentication failures.
Source: opennet.ru
