You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mailman3中提取并打印Exim所使用的别名?

提取Mailman3为Exim生成的别名

为什么你的脚本会报错?

你用的mailman.testing.documentation.cli是Mailman测试框架的工具,仅用于生成文档示例,并非生产环境工具。而且该脚本针对Postfix生成专属文件(postfix_domains),完全不适配Exim场景,自然会出现文件找不到的错误。


方法1:用Mailman3官方命令直接生成Exim别名

Mailman3自带的mailman aliases命令支持生成适配Exim的别名格式,直接在命令行执行:

mailman aliases --output exim

执行后会直接输出所有Mailman3管理的邮件列表别名(包括你提到的9个核心别名,对应7个封装脚本)。

如果需要将结果保存到Exim可读取的文件,可重定向输出:

mailman aliases --output exim > /etc/exim4/mailman_aliases

之后在Exim配置中添加对该文件的引用,示例配置片段:

aliases:
  driver = redirect
  allow_defer
  allow_fail
  data = ${lookup{$local_part}lsearch{/etc/exim4/mailman_aliases}{$value}{}}

方法2:用Python脚本生成(替代命令行)

如果需要通过Python脚本实现,不要依赖测试模块,直接调用Mailman3的核心API:

#!/usr/bin/python3
from mailman.config import config
from mailman.interfaces.command import ICLISubCommand
from zope.component import getUtility

# 加载Mailman配置
config.load()

# 获取aliases命令实例并生成Exim格式别名
aliases_command = getUtility(ICLISubCommand, name='aliases')
exim_aliases = aliases_command._generate_exim_aliases()

print(exim_aliases)

运行该脚本会直接打印出Exim兼容的别名内容,无需生成Postfix专属文件。


内容的提问来源于stack exchange,提问作者Polo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:12:39