Despois de 6 meses de desenvolvemento tivo lugar versión do servidor de correo Exim 4.94, no que se realizaron correccións acumuladas e se engadiron novas funcións. De acordo co maio enquisa automatizada preto dun millón de servidores de correo, a participación de Exim é do 57.59% (hai un ano 53.03%), Postfix úsase no 34.70% (34.51%) dos servidores de correo, Sendmail - 3.75% (4.05%), Microsoft Exchange - 0.42% ( 0.57%).
Os cambios nunha nova versión poden romper a compatibilidade con versións anteriores. En particular, algúns modos de transporte xa non funcionan con datos contaminados (valores baseados nos datos recibidos do remitente) ao determinar a localización dunha entrega. Por exemplo, poden xurdir problemas ao usar a variable $local_part na configuración "check_local_user" ao enrutar unha carta. A nova variable borrada "$local_part_data" debería usarse en lugar de $local_part. Ademais, os operandos da opción headers_remove agora permiten o uso de máscaras definidas polo carácter "*", o que pode romper as configuracións que eliminan as cabeceiras que rematan cun asterisco (eliminar por máscara en lugar de eliminar cabeceiras específicas).
Engadiuse soporte experimental integrado para o mecanismo SRS (Esquema de reescritura do remitente), que che permite reescribir o enderezo do remitente ao reenviar sen violar as comprobacións SPF (Marco de políticas do remitente) e garantindo que a información do remitente estea almacenada para que o servidor poida enviar mensaxes en caso de erro de entrega. A esencia do método é que cando se establece unha conexión, transmítese información sobre a identidade co remitente orixinal, por exemplo, ao reescribir [protexido por correo electrónico] en [protexido por correo electrónico] indicarase "[protexido por correo electrónico]" O SRS é relevante, por exemplo, cando se organiza o traballo das listas de correo nas que a mensaxe orixinal é redirixida a outros destinatarios.
Ao usar OpenSSL, engadiuse soporte para fixar canles autenticadores (anteriormente só era compatible con GnuTLS).
Engadiuse o evento "msg: defer".
Compatibilidade implementada para o autenticador do cliente gsasl, que só se probou cun manejador de contrasinais de texto sinxelo. O funcionamento dos métodos SCRAM-SHA-256 e SCRAM-SHA-256-PLUS só é posible a través do gsasl.
Implementouse o soporte para o autenticador gsasl do servidor para contrasinais cifrados, que serve como alternativa ao modo de texto plano dispoñible anteriormente.
As definicións das listas con nome agora poden ser prefixadas con "ocultar" para suprimir a saída de contido ao executar o comando "-bP".
Engadiuse soporte experimental para sockets de Internet ao controlador de autenticación a través do servidor IMAP Dovecot (anteriormente só se admitían sockets de dominio Unix).
A expresión ACL "queue_only" agora pódese especificar como "queue" e admite a opción "first_pass_route", similar á opción de liña de comandos "-odqs".
Engadíronse novas variables $queue_size e $local_part_{pre,suf}fix_v.
Engadiuse a opción "sqlite_dbfile" ao bloque de configuración principal para usar ao definir o prefixo da cadea de busca. O cambio rompe a compatibilidade cara atrás: o método antigo de establecer un prefixo xa non funciona cando se especifican variables contaminadas nas consultas de busca. Un novo método ("sqlite_dbfile") permítelle manter separado o nome do ficheiro.
Engadíronse opcións aos bloques de busca de dsearch para devolver a ruta completa e filtrar os tipos de ficheiros ao coincidir.
Engadíronse opcións aos bloques de busca pgsql e mysql para especificar o nome do servidor por separado da cadea de busca.
Para os bloques de busca que seleccionan unha única clave, engadiuse unha opción para devolver unha versión contaminada da clave se hai coincidencias, en lugar dos datos buscados.
Para todas as seleccións de coincidencia de listas exitosas, establécense as variables $domain_data e $localpart_data (anteriormente insírense os elementos da lista implicados na selección). Ademais, os elementos de lista usados na coincidencia agora atribúense ás variables $0, $1, etc.
Engadiuse o operador de expansión "${listquote { } { }}".
Engadiuse unha opción ao operador de expansión ${readsocket {}{}{}} para permitir almacenar na memoria caché os resultados.
Engadiuse a configuración dkim_verify_min_keysizes para listar os tamaños mínimos de chaves públicas permitidos.
Asegurouse de que os parámetros "bounce_message_file" e "warn_message_file" se expandan antes de utilizarse por primeira vez.
Engadiuse a opción "spf_smtp_comment_template" para configurar o valor da variable "$spf_smtp_comment".