Exim 4.95 介绍与选型指南

Exim(EXperimental Internet Mailer)纯联网溯源篇:软件身份与沿革、路由器→传输器架构、ACL 体系、队列与 Debian 配置框架、功能特性清单、Ubuntu 22.04 快速上手路径、适用场景与安全风险,以及与 Postfix 3.11.6 / Sendmail 8.16.1 / OpenSMTPD 7.7.0p0 / dma 的量化选型对比。信息检索日期 2026-10-26,仓库版本号经 apt 实查。

EximExim邮件服务器2026/10/26

Exim 4.95 介绍与选型指南

目标:讲清 Exim 是什么、怎么运作、能做什么、和谁竞争、什么时候选它——软件身份、核心架构、功能特性、快速上手路径、适用场景与限制,以及与 Postfix、Sendmail、OpenSMTPD、dma 的量化选型对比。本篇为纯联网溯源篇,全部事实取自官方站点、官方规格说明书与发行版包索引(信息检索日期:2026-10-26,Ubuntu 22.04 仓库版本号经 apt 实查)。

一、环境信息

本篇为介绍与选型篇,不依赖本地实验环境;正文涉及的具体版本以下列公开来源为准,检索日期均为 2026-10-26:

项目取值来源
官方站点https://www.exim.org/Exim 官网
权威文档Exim 规格说明书(Spec)https://www.exim.org/exim-html-current/doc/html/spec_html/index.html官方文档站
Ubuntu 22.04 仓库版本4.95-4ubuntu2.12(jammy-updates / jammy-security)apt policy exim4 实查
Ubuntu 22.04 基线版本4.95-4ubuntu2(jammy/main)apt policy exim4 实查
上游最新版4.100.1exim.org 版本页(2026-10-26 查询)
许可证GPL(GNU General Public License)官网与源码树 LICENSE
Ubuntu 包索引https://packages.ubuntu.com/jammy/exim4Ubuntu 官方包站
维基条目(历史沿革)https://en.wikipedia.org/wiki/EximWikipedia(2026-10-26 查询)

Ubuntu 22.04 仓库中该版本的完整候选版本视图(apt policy 输出节选,实查于 2026-10-26):

exim4:
  Installed: 4.95-4ubuntu2.12
  Candidate: 4.95-4ubuntu2.12
  Version table:
 *** 4.95-4ubuntu2.12 500
        500 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages
     4.95-4ubuntu2 500
        500 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages

💡 说明:本文标题中的 4.95 即来自 Ubuntu 22.04 仓库的实查版本(候选版本 4.95-4ubuntu2.12)。上游版本号与仓库版本不必相同——Ubuntu 会把上游 4.95 长期维护在 jammy 的 updates/security 通道里。

二、软件概述

Exim 是一款运行在 Unix 类操作系统上的开源邮件传输代理(MTA,Mail Transfer Agent),负责在服务器之间接收、路由与投递电子邮件。它 1995 年诞生于英国剑桥大学,由 Philip Hazel 出于替代当时校内在用的 Smail-3 而开发,名字取自 EXperimental Internet Mailer;项目现由全球志愿者维护团队接管,源代码以 GPL 许可证发布,主站点为 https://www.exim.org/(沿革信息来源:官网项目页与 Wikipedia 条目,2026-10-26 查询)。

几个标定它江湖地位的事实(检索日期 2026-10-26):

  • 装机量:公开互联网扫描统计显示,Exim 长期是互联网上可见的 MTA 之一,2025-02 前后 Shodan 可见的主机量约 256 万台;同期 Postfix 的可见数量已反超(两家互有领先,口径取决于扫描方式);
  • 历史份额:Sendmail 曾占互联网 MTA 份额约 80%,如今已萎缩到约 4%——它让出的空间主要被 Postfix、Exim、OpenSMTPD 分食;
  • 发行版默认:Exim 是 Debian 系发行版的默认 MTA(Ubuntu 安装系统工具时会默认拉起 exim4 做本地投递),这使它拥有极其庞大的"沉默装机量";
  • 版本节奏:上游保持活跃发布,最新版本已到 4.100.1(2026-10-26 查询 exim.org);Ubuntu 22.04(LTS,2022 年发布)仓库锚定在 4.95,通过 jammy-updates/jammy-security 持续获得补丁(当前 4.95-4ubuntu2.12)。

💡 技术拓展:MTA 与 MDA、MUA 的分工——MUA(如 Outlook)只负责写信收信;MTA(Exim/Postfix/Sendmail)负责服务器间传输;MDA(如 Dovecot LDA、procmail)负责最终落箱。Exim 以 MTA 为主体,但内置 appendfile/maildir 传输器可以直接承担 MDA 的落箱职责,这是它与"纯 MTA"设计的一个差异点。

三、核心架构

以下机制描述均以官方规格说明书(Spec,exim-html-current)为准,章节号随上游版本可能浮动:

3.1 单一二进制 + 配置驱动

Exim 的核心是一个 exim 可执行文件(Debian/Ubuntu 上为 exim4),配合一份主配置文件工作。与其他 MTA 最大的不同是:Exim 的路由、投递、访问控制全部是"配置语言"——用路由器(router)、传输器(transport)、ACL(访问控制列表)与字符串展开表达式在配置文件里编程,而不是编译进二进制。同一个二进制可以扮演边缘网关、内部中继、本地投递器三种角色,全看配置。

3.2 路由器 → 传输器两段式投递模型

一封信在 Exim 里的旅程被拆成两段:

  • 路由器链(Routers):按声明顺序逐个尝试,决定"这封信该去哪"。内置路由器类型包括 accept(本地接受)、dnslookup(查 MX 走 SMTP)、manualroute(手工指定下一跳,做智能主机/站点路由)、redirect(别名/转发展开)等;
  • 传输器(Transports):执行"怎么送"。smtp 传输器对外发信(支持 STARTTLS/TLS、DKIM 签名),appendfile 落 mbox,maildir 落 Maildir,pipe 交给外部程序。

这种"路由与传输解耦 + 顺序链匹配"的模型让复杂策略(如"本域用户落 Maildir、转发到外部、陌生域走智能主机")用十几行配置就能表达,代价是配置语言本身有学习曲线。

3.3 访问控制:ACL 体系

SMTP 会话的每个阶段(连接、HELO、MAIL、RCPT、DATA)都挂接 ACL,按条件链(accept/require/deny/warn/defer)逐条求值。中继控制、垃圾邮件防线(黑名单、SPF、灰名单钩子)、认证后放行都在这里实现。典型的"三态中继"就是一段 ACL:授权网段放行、认证用户放行、其余一律拒绝。

3.4 队列与提示数据库

无法立即投出的邮件进入队列(spool 目录,Debian 为 /var/spool/exim4),由周期队列进程重试;重试节奏记录在提示数据库(retry hints)里,按"指数退避"规则决定下次尝试时间。冻结(frozen)机制把反复失败的信件冻结出队,防止无限重试。

3.5 Debian 配置框架

Debian/Ubuntu 把上游配置包装成 exim4-config 框架:用户只需编辑 /etc/exim4/update-exim4.conf.conf 里的几个部署型变量(部署型 internet site / smarthost / satellite / local only / unconfigured),再由 update-exim4.conf 从模板(单一模式)或 conf.d/ 分片(分片模式)生成真正的运行配置。这层框架显著降低了 Exim 的上手门槛,是 Ubuntu 上使用 Exim 的主要方式。

3.6 与同类架构的直观对比

维度EximPostfixSendmail
配置载体自有配置语言(路由器/ACL/展开式)main.cf 键值 + 小型 DSL(master.cf)sendmail.cf(m4 宏生成)
进程模型单守护进程 + 按需派生投递进程多守护进程协作(master + smtpd/cleanup/qmgr…)单进程传统模型
扩展点配置语言内嵌查找与展开外部程序/插件m4 重写规则

(对比依据各方官方文档的架构描述,2026-10-26 查询。)

四、功能特性

以下特性取自官方规格说明书特性清单与 Ubuntu 仓库包描述(检索日期 2026-10-26);其中编译开关组合可用 exim4 -bV 的 Support for: 行核对,同批实测文档《Exim 4.95 常用 CLI 命令详解》第一章给出了 Ubuntu 22.04 二进制的真实特性行。

特性域支持情况
传输加密STARTTLS / SMTP over TLS(GnuTLS 或 OpenSSL 编译选项)、TLS 会话恢复、DANE、OCSP
身份认证plaintext、cram_md5 等认证器(编译选项可扩展 external/Dovecot 等)
反垃圾防线ACL 钩子 + SPF 工具、灰名单/黑名单(RBLL)模式、内容扫描接口(exim4-daemon-heavy 内建 exiscan/SpamAssassin 与 ClamAV 钩子)
邮件签名与校验DKIM 签名与验签(编译开关 DKIM)
DNS 能力DNSSEC 校验(DNSSEC)、DNS 黑名单查询、SRV/MX 解析
国际化EAI/SMTPUTF8(I18N)、iconv() 编码转换
协议增强PIPELINING/PIPE_CONNECT、PRDR、TCP Fast Open、SOCKS 代理、SRS(发件人重写)
投递方式SMTP 远端投递、mbox/Maildir/Mailstore 本地投递、pipe 外部程序、autoreply 自动回复、LMTP
查找后端(Lookups)lsearch/dbm/cdb/dnsdb/passwd/dsearch 等十余种内置查找类型,配置里可直接查文件、查 DNS
路由器/传输器accept、dnslookup、ipliteral、manualroute、queryprogram、redirect 六类路由器开箱即用
平台Linux、BSD 系、Solaris 等 Unix 类系统;无原生 Windows 版本

两个 Ubuntu 发行版差异点值得单独说明(来源:Ubuntu 包描述与 Debian Exim README):

  • exim4-daemon-light vs exim4-daemon-heavy:二者互斥安装。light 面向本地投递与常规中继;heavy 在编译时加入内容扫描(exiscan-acl,接 SpamAssassin/ClamAV)等特性,面向对外邮件网关。装哪个用 apt install exim4-daemon-heavy 即可切换(本系列《Ubuntu 22.04 安装 Exim 4.95 指南》对两种 daemon 都做了实测);
  • SPF 工具:Ubuntu 把 SPF 检查拆在建议包 spf-tools-perl 中,默认安装不包含,需要 ACL 级 SPF 校验时另行安装。

五、快速开始

本篇是溯源篇,不展开本地实测;这里给出 Ubuntu 22.04 上的官方推荐最小路径,完整到 0→1 的安装、双机收发、本地投递与排障实录见同批实测篇《Ubuntu 22.04 安装 Exim 4.95 指南》。

  1. 安装(约 4.6 MB 磁盘增量,实查于 2026-10-26):

    apt install exim4        # 默认拉入 exim4-base、exim4-config、exim4-daemon-light
    
  2. 选部署型:编辑 /etc/exim4/update-exim4.conf.conf,把 dc_eximconfig_configtype 设为 internet site(对外收发)或 local mail only(只收本机),并填入邮件域名;

  3. 重新生成配置并重启服务:

    update-exim4.conf && systemctl restart exim4
    
  4. 验证:

    exim4 -bV                 # 看版本与生效配置路径
    exim4 -bt root@本机域名    # 看地址会被哪个路由器/传输器接走
    systemctl is-active exim4
    
  5. 读信:本地用户信件按 Debian 默认落 /var/mail/<用户名>(或 Maildir,取决于配置),用 mail/bsd-mailx 读取;root 的信件经 Debian 特有的 mail4root 路由落到 /var/mail/mail。

最小闭环(本机给本机发一封信、能看到落箱)在上述五步内即可完成;对外收发还依赖 DNS MX 记录与防火墙放行 25/tcp,这些前置在实测篇中有逐条验证。

六、适用场景与限制

6.1 适合选 Exim 的场景

  • Debian/Ubuntu 系基础设施的默认与一致性:系统自带、debconf 一路确认即可用,与发行版生命周期绑定,安全补丁随仓库走;
  • 需要"配置即编程"的复杂路由策略:多域托管、按收件人分流、别名与转发网、hub 站点路由、条件化中继——Exim 的路由器/ACL 语言表达力最强;
  • 单机多角色:一台机器同时做本地投递 + 内部中继 + 出站网关,一套配置语言搞定;
  • 实验室与教学:SMTP 协议教学、邮件路由实验,Exim 的 -bt/-d 调试链路是业界最透明的。

6.2 限制与风险

  • 安全历史包袱:Exim 因装机量巨大曾多次出现影响面很广的高危 CVE(如 2019 年 CVE-2019-10149 远程命令执行),暴露在公网的 Exim 必须保持仓库补丁节奏;
  • 配置语言门槛:路由器/ACL/展开式三者组合的表达力以学习成本为代价,误配不易察觉,需要 -bt/-bP/日志三件套辅助;
  • 上游与 LTS 的版本差:Ubuntu 22.04 锚定 4.95,上游已演进到 4.100.1;新特性要等下一个 LTS 或自行编译;
  • 默认安装偏保守:反垃圾、反病毒、DKIM 等能力以编译开关/建议包形态存在,heavy daemon、spf-tools-perl 等需要显式选择;
  • 性能调优空间有限:Exim 的设计哲学是"策略正确优于极限吞吐",超大流量站点通常更倾向 Postfix 的并发进程模型(见 7.2)。

七、同类选型对比

7.1 候选者速览

  • Postfix(IBM/Wietse Venema,1998 起,IPL-1.0 类 IBM 公共许可):以"安全、快、易管"著称,模块化多进程架构,Linux 世界的默认选择之一;上游活跃,2026-08-10 发布 3.11.6(2026-10-26 查询);
  • Sendmail(Eric Allman,1980s 起,Sendmail License):互联网早期事实标准、m4 配置与重写规则的开山者;份额从约 80% 萎缩至约 4%,最新版 8.16.1,已明显老化;
  • OpenSMTPD(OpenBSD 项目,ISC 许可):以"配置简单、默认安全"为卖点的现代 MTA,配置文件最少能短到五行;跟随 OpenBSD 节奏发布,最新 7.7.0p0(2026-10-26 查询);
  • dma(DragonFly Mail Agent,BSD 系):极简邮件代理——只做"本地收信 + 出站队列投递",没有 SMTP 收信服务、没有复杂路由,定位与 exim 的 local mail only 部署型相近。

7.2 量化对比表

维度Exim 4.95(Ubuntu 22.04)Postfix 3.11.6Sendmail 8.16.1OpenSMTPD 7.7.0p0dma
许可证GPLIBM Public License 类Sendmail LicenseISCBSD 系
最新上游版4.100.13.11.6(2026-08-10)8.16.17.7.0p0以发行版打包为准
发布节奏活跃(4.95→4.100.1 线性演进)活跃、稳定分支并行缓慢随 OpenBSD 半年节奏极慢
互联网可见装机量约 256 万主机(Shodan,2025-02)可见数量已反超 Exim约 4% 份额(历史峰值约 80%)较少少(多为内网)
配置复杂度高(自有配置语言)中(键值 + 模板)高(sendmail.cf/m4)低(声明式短配置)极低
反垃圾/内容扫描heavy 版内建 exiscan(SpamAssassin/ClamAV 钩子)外接(postsieve/amavisd 类)外接有限无
多角色能力本地投递/中继/边缘网关一体全角色(虚拟域、虚拟用户强)全角色(老旧)全角色(简化模型)仅本地+出站
典型宿主Debian/Ubuntu 默认RHEL/SUSE 默认历史 UnixOpenBSD 默认BSD/嵌入式

(数据来源:各方官网/发布页/公开扫描统计,检索日期 2026-10-26;装机量为量级参考,口径随扫描方式浮动。)

7.3 选型建议(如果…则…)

  • 如果宿主是 Debian/Ubuntu 且以系统邮件、内网中继、多域路由为主 → Exim:发行版默认、配置语言能表达复杂策略;
  • 如果面向大流量边缘网关、需要成熟的多进程并发与广泛的第三方文档生态 → Postfix;
  • 如果追求最小配置面、BSD 系环境或小站点的"傻瓜化" MTA → OpenSMTPD;
  • 如果只是给本机进程发通知信、不想跑完整 MTA → dma(或 Exim 的 local mail only 部署型,二选一);
  • 如果是新项目 → 不建议 Sendmail:份额与活跃度都已进入维护态,仅存量系统维护场景保留。

同批次还开发了 Postfix 专栏(与 Exim 同为 Ubuntu 22.04 邮件服务器方向),需要横向动手对比时可在站内检索该专栏的安装篇配合阅读。

八、参考链接