È stato rilasciato Exim 4.99, che include le correzioni accumulate e nuove funzionalità. Il codice del progetto è scritto in C e distribuito sotto licenza GPLv2+. Secondo un sondaggio automatizzato di circa 500.000 server di posta, Exim detiene il 56% di quota (rispetto al 59,06% dell'anno scorso), Postfix è utilizzato nel 37,45% (34,68%) dei server di posta, Sendmail - 3,53% (3,42%), MailEnable - 1,84% (1,81%), MDaemon - 0,40% (0,37%), Microsoft Exchange - 0,20% (0,17%).
Variazioni principali:
- È stato aggiunto il supporto per il comando ESMTP "ATRN" (Authenticated TURN), che consente di cambiare i ruoli del server e del client durante la consegna dei messaggi. Il comando può essere utilizzato per organizzare la consegna di email su sistemi con indirizzi IP dinamici o con connettività Internet intermittente. Un sistema simile può collegarsi a un server SMTP come client e poi, tramite il comando ATRN, assumere il ruolo di server per ricevere i messaggi accumulati. Il comando può essere utilizzato solo dopo un'autenticazione riuscita e in presenza di un ACL autorizzante (acl_smtp_atrn).
- La maggior parte dei componenti di Exim può ora essere compilata sotto forma di moduli caricabili. Ad esempio, i motori di lookup per JSON e LDAP, i filtri, i driver di autenticazione e routing, e i componenti PAM, RADIUS, perl, SPF, DKIM, DMARC e ARC possono essere formattati come moduli caricabili, così come tutti i tipi di trasporto, a eccezione di SMTP.
- È stata implementata la possibilità di disabilitare il supporto per i filtri Exim e Sieve durante la fase di compilazione.
- È stato aggiunto il supporto per i record DNS SRV (Service Location Record) per determinare il supporto TLS (Transport Layer Security) dei destinatari di posta. server destinatari.
- È stata aggiunta un'opzione di compilazione sperimentale "EXPERIMENTAL_SPF_PERL", che include un'implementazione alternativa del meccanismo di autenticazione SPF (Sender Policy Framework) che utilizza il modulo Perl Mail::SPF al posto della libreria libspf2, che presenta problemi di manutenzione.
- È stata aggiunta un'opzione di compilazione sperimentale "EXPERIMENTAL_NMH" con l'implementazione del motore di lookup per il controllo nel repository NMH (Net-Masked Hero). indirizzi IP nella memoria NMH (Net-Masked Hero).
- Nel file di configurazione è stata aggiunta l'impostazione "tls_early_banner_hosts" per determinare quali host utilizzeranno il meccanismo "TLS Early Data" (0-RTT) per l'invio del banner SMTP nella fase precedente al completamento della negoziazione della connessione TLS.
- È stata aggiunta l'opzione "sieve_inbox" per specificare il nome del file mailbox in cui saranno salvati i messaggi reindirizzati tramite l'impostazione "redirect_router" nei filtri Sieve.
- È stata aggiunta la variabile «connection_id», contenente l'identificatore della connessione accettata. Questa variabile può essere utilizzata per configurare il formato di output nel log.
- Sono stati implementati gli eventi smtp:fail:protocol e smtp:fail:syntax, che consentono di monitorare gli errori relativi al protocollo e alla sintassi dei comandi SMTP.
- Il trasporto «socks_proxy» ora può accettare un valore vuoto, che sarà interpretato come assenza di proxy.
- Sono state aggiunte le variabili $dmarc_alignment_spf e $dmarc_alignment_dkim, che riflettono i risultati dei controlli SPF e DKIM.
- È stata aggiunta la possibilità di utilizzare connessioni IPv6 quando si accede ai database MySQL e PostgreSQL.
- È consentito utilizzare l'indirizzo del mittente (envelope-from) specificato nelle impostazioni del trasporto per le consegne dirette (cutthrough deliveries) e per le verifiche dell'esistenza dei destinatari.
- È stata aggiunta la possibilità di utilizzare variabili ed espressioni per la formazione dinamica delle opzioni «hosts_randomize» nel router «manualroute» e nel trasporto «smtp». Analogamente, è stata aggiunta la supporto per la formazione dinamica delle opzioni «fallback_hosts» in tutti i router e nel trasporto «smtp».
- Nel file di configurazione è stata aggiunta l'opzione «log_ports» per filtrare i numeri di porta riflessi nei log. Ad esempio, specificando «log_ports = !25 : !587» nei log verranno registrate le voci outgoing_port e incoming_interface non relative alle porte 25 e 587.
- È stata aggiunta la possibilità di riflettere nel log le informazioni sui comandi e le risposte inviate durante l'instaurazione della connessione SMTP, così come informazioni sull'uso di TLS durante la connessione (etichetta «tls_on_connect»).
- È stata aggiunta l'opzione «no_wr», che disabilita la registrazione nella cache dei risultati delle operazioni di lookup.
- È stata aggiunta l'opzione della riga di comando «-dS» per l'output delle informazioni di debug nella fase precedente all'analisi del file di configurazione.
- Nei log dei messaggi associati a fallimenti di autenticazione sono stati aggiunti i tag «H=» e «U=», che riflettono l'host e il nome utente.
Fonte: opennet.ru
