在阅读文档的过程中,我走上了一条误入歧途的道路,尤其是那些材料我在这里找到- 出于纯粹的沮丧,我最终找到了“官方维基百科”,就在这里,它将我指向“缺失的”命令行界面 (CLI) 实用程序。在我的安装中,它们位于 /lib/mailman/bin。但是,它们不起作用!
例如,以用户 mailman 身份运行:
$ add_members -h
Traceback (most recent call last):
File "/lib/mailman/bin/add_members", line 89, in <module>
from Mailman import i18n
ImportError: No module named Mailman
我肯定有人会问,所以:
Fedora Server 32 运行 mailman3-3.2.2-1.fc32.noarch...以及大约 153 个 Python3 包... python3 --version 命令显示它是 3.8.5。
顺便说一句,我使用 DNF 安装了 Mailman3。我不知道我是否应该安装更多东西,但通常如果有未解决的依赖关系,DNF 会报错,但它没有报错。
...我真的需要让这些工作起来,而且无论如何我都不是 Python 程序员。我现在也不想花时间去学习它...为什么要提这个?继续阅读:
作为“面包屑”(就像汉塞尔和格莱特民间故事中那样),对于那些可能稍后跟进的人来说,从前面引用的网站的文档来看,显然,再次,根据该来源,您必须进入 shell Python
,编写自己的Python
函数,简而言之,成为 Python 和 Mailman 库专家,才能使用他们所谓的 CLI 界面。疯了!
如果要走这条路,你需要登录 mailman(以获取正确的用户上下文),然后:
$ PYTHONSTARTUP= mailman3 shell
然后你会得到一个 python 提示符 >>> 然后你必须做如下操作:
>>> from mailman.testing.documentation import cli
>>> command = cli('mailman.commands.cli_withlist.shell')
>>> command('mailman shell --details')
而且,从这里开始有很多可能,所有这些都需要大量的打字,而且Python
比我现在知道的要多得多。这里有这方面的文档在这儿。...我真正想要做的是导入一个包含从以前版本保存的人员姓名和电子邮件地址的文件并将其添加到列表中,但在这种环境下执行此操作需要进行大量的输入。
令人高兴的是,一切都确实有效,从我并不完全了解的尝试中我能够得出最好的结论。
编写脚本来模拟旧实用程序应该“非常容易” mailman 2.x
,所以也许您可以看到我在发现实用程序仍然存在之前是多么沮丧,它们就是不起作用!...我 100% 确定我可以学习 Python 和 mailman3 库并编写自己的库,但我没有时间这样做。...所以,我需要让这些其他实用程序工作起来。
答案1
我通过坚持不懈解决了这个问题。按照我在此处记录的内容,现在命令行工具可以正常工作,Mailman 也运行良好,尽管我还没有让 Web 界面运行起来。...第一个新列表已创建并正确发送邮件。
我认为也许我没有安装足够的软件,但不知道我可能错过了什么,因此我再次运行了 dnf,如下所示:
# dnf install mailman3*
Last metadata expiration check: 2:38:45 ago on Mon 31 Jan 2022 04:09:14 PM PST.
Package mailman-3:2.1.34-1.fc32.x86_64 is already installed.
Package mailman3-3.2.2-1.fc32.noarch is already installed.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
mailman3-fedmsg-plugin noarch 0.5-14.fc32 fedora 21 k
Installing dependencies:
fedmsg-base noarch 1.1.2-1.fc32 updates 22 k
openpgm x86_64 5.2.122-22.fc32 fedora 189 k
python3-Automat noarch 20.2.0-1.fc32 fedora 65 k
python3-arrow noarch 0.14.6-3.fc32 fedora 82 k
python3-constantly noarch 15.1.0-9.fc32 fedora 20 k
python3-daemon noarch 2.2.3-8.fc32 fedora 38 k
python3-docutils noarch 0.15.2-4.fc32 fedora 1.5 M
python3-fedmsg noarch 1.1.2-1.fc32 updates 320 k
python3-hamcrest noarch 1.9.0-13.fc32 fedora 73 k
python3-hyperlink noarch 19.0.0-6.fc32 fedora 75 k
python3-incremental noarch 17.5.0-10.fc32 fedora 33 k
python3-kitchen noarch 1.2.6-5.fc32 fedora 88 k
python3-lockfile noarch 1:0.11.0-17.fc32 fedora 30 k
python3-moksha-common noarch 1.2.5-14.fc32 fedora 43 k
python3-moksha-hub noarch 1.5.17-6.fc32 fedora 76 k
python3-psutil x86_64 5.6.7-1.fc32 fedora 383 k
python3-pyasn1-modules noarch 0.4.8-1.fc32 fedora 211 k
python3-stomper noarch 0.4.3-6.fc32 fedora 49 k
python3-twisted x86_64 20.3.0-1.fc32 updates 6.0 M
python3-txws noarch 0.9.1-20.fc32 updates 24 k
python3-txzmq noarch 0.8.0-13.fc32 fedora 47 k
python3-zmq x86_64 18.1.0-3.fc32 fedora 412 k
zeromq x86_64 4.3.3-1.fc32 updates 496 k
Installing weak dependencies:
python3-service-identity noarch 18.1.0-6.fc32 fedora 27 k
Transaction Summary
================================================================================
Install 25 Packages
Total download size: 10 M
Installed size: 49 M
Is this ok [y/N]:
...etc...
这样做的一个结果是禁用了mailman3
,所以我重新启用了它并用 重新启动了它systemctl
。它还清除了之前的列表(我可以创建但不能像以前一样填充列表),所以我必须创建一个名为mailman
first 的列表 - 我记得如果没有它,它就无法成功启动。但是随着新mailman
电子邮件列表的创建,THENmailman3
将启动,然后我创建了我的新邮件列表。
我没有想到它会重新安装Mailman3
,我猜它确实重新安装是因为它将服务重置为禁用。......所以主列表可能被消灭了,因为我没有停止仍在运行的mailman3.server
服务。
与之前的 2.x 不同Mailman
,我必须手动将新列表别名添加到/etc/aliases
,然后运行postalias
并重新启动postfix
才能使它们生效 - 这是一个相当烦人的倒退?!但是,嘿,它起作用了。