Exim
概述
Exim 是一款为 Unix 系统设计的高度可配置邮件传输代理(MTA)。最初在剑桥大学开发,功能丰富,对邮件路由、重写与身份验证提供精细控制。Exim 适用于需要深度定制的复杂邮件环境。
本章介绍如何在 OpenBSD 上安装和配置 Exim,涵盖本地投递、TLS 加密、通过 smarthost 中继以及基本内容过滤等场景。Exim 不属于 OpenBSD 基本系统,但以软件包形式提供,在需要更高级邮件逻辑时可替代 Postfix 或 smtpd(8)。
功能特性
完全兼容 Sendmail 风格的命令行
精细的路由与重写策略
支持 SMTP、submission 与 LMTP
支持 TLS、SASL 与 DKIM
虚拟域与虚拟用户处理
灵活的日志与队列管理
安装 Exim
安装 Exim 软件包:
# pkg_add exim为避免与默认的 smtpd(8) 服务冲突,先将其禁用:
启用并启动 Exim:
Exim 配置位于:
若此文件不存在,复制默认模板:
配置概览
与 Postfix 不同,Exim 使用单一的整体配置文件:/usr/local/exim/configure。
该文件分为多个节,包括:
MAIN CONFIGURATION SETTINGSACL CONFIGURATIONROUTERS CONFIGURATIONTRANSPORTS CONFIGURATIONRETRY CONFIGURATIONREWRITE CONFIGURATIONAUTHENTICATION CONFIGURATION
每节控制 Exim 行为的不同方面,指令对顺序敏感。
编辑配置后,测试:
重新加载 Exim 以应用更改:
最小配置示例
以下简单配置适用于本地投递与通过 DNS 发送外发邮件:
/usr/local/exim/configure
此配置:
对本地用户使用 Maildir 投递
通过 DNS MX 解析发送所有外发邮件
不为未经身份验证的远程用户中继
接收互联网邮件
允许来自外部系统的入站邮件:
确保
domainlist local_domains包含系统的 FQDN 或所需域名:确保系统监听外部接口(默认行为):
必要时在
pf.conf中开放 TCP 端口 25。确保配置了正确的 MX DNS 记录。
TLS 配置
启用 TLS 前,创建或安装有效的证书与私钥,例如:
/etc/ssl/example.org.crt/etc/ssl/private/example.org.key
在 MAIN CONFIGURATION 节中加入:
强制 STARTTLS:
检查 TLS 支持:
Smarthost(中继)配置
通过服务商中继所有外发邮件:
将身份验证凭据加入
/usr/local/exim/passwd.client:限制文件权限:
添加使用 smarthost 的路由器与传输:
Routers 节
Transports 节
Authentication 节
重新加载 Exim:
虚拟域与虚拟用户
对于托管多域并使用虚拟用户的系统,Exim 支持多种查找机制。
使用扁平文件的基本配置:
/etc/exim/virtual.aliases
Routers 节
创建文件并设置权限:
过滤与 ACL
Exim 提供精细的 ACL,用于阻止垃圾邮件和执行策略。
要拒绝非 TLS 连接或未经身份验证的中继,修改 acl_smtp_rcpt 节:
基本的垃圾邮件标头过滤:
Exim 还可通过 transport_filter 或 av_scanner 选项与 SpamAssassin、rspamd、ClamAV 等外部垃圾邮件过滤器集成。
邮件队列与日志
查看队列:
刷新队列:
查看日志:
查看邮件日志:
测试
从命令行发送邮件:
检查其是否出现在邮件队列或日志文件中。
关键配置文件一览
/usr/local/exim/configure
主配置文件
/etc/exim/virtual.aliases
虚拟别名映射
/usr/local/exim/passwd.client
SMTP 身份验证凭据
/var/log/exim/mainlog
主日志文件
替代方案
Exim 最适合需要对邮件路由、重写与身份验证完全掌控的管理员。对于较简单的场景,Postfix 或基本系统的 smtpd 守护进程配置更简便,与 OpenBSD 集成也更紧密。
最后更新于