#list #manager #group #tiny #community #archive #mailing

app mulm

为小型社区小组提供的简单邮件列表管理器

6个稳定版本

1.1.1 2020年8月10日
1.1.0 2020年7月11日
1.0.3 2020年7月7日
1.0.1 2020年7月6日

#159电子邮件

自定义许可证

22KB
458

mulm,一个小型邮件列表管理器

非商业用途免费。商业用途请 购买许可证

快速入门

使用以下命令安装此包:cargo install mulm --root /usr/local。然后

mkdir/path/to/list/store.list

创建 /path/to/list/store.list/config.toml,内容如下

[config]
name = "A List"
slug = "listname"

在您的MTA的别名文件中,添加 listname: |/usr/local/bin/mulm /path/to/list/store.list

发送邮件到 listname@yourdomain 以发表帖子;使用主题行 "subscribe" 来订阅,使用 "unsubscribe" 来从列表中移除自己。

功能

  • 带内命令:我们尊重发送到列表地址的取消订阅和订阅。
  • 如果中断,可以恢复发送
  • 将所有消息存档到一个mbox组中

当前状态

没有隐私,它运行得很好,但非常简单。最好用于彼此信任的组。

配置

  • config.name — 列表的面向用户的标题。字符串,必需。
  • config.slug — 列表的标识符,最好是地址的本地部分。字符串,必需。
  • config.open_posting — 发帖者是否必须是列表成员。布尔值,可选,默认为false。
  • config.tag_subject - 是否将 [list slug] 添加到消息的主题中。布尔值,可选。默认为false。

内部设计

该软件的设计适用于小型系统。每个列表都存储在Maildir中,这使得在出现故障时消息存档非常可靠。

将控制文件和队列目录添加到maildir中。

config.toml是列表配置文件。

正在中继到MTA的消息队列是可恢复的(尽管这使用了文件锁定,与普通的maildir不同,因此老式的NFS在这里是个隐患——如果文件锁定不起作用,可能会发生重复投递)。

队列集成在maildir的queue目录中。每个队列条目有三个文件:一个位置文件({id}.pos),跟踪已发送到目标列表的位置以及此消息的停止位置;一个目标列表({id}.dest),每行一个收件人,以及消息({id}.msg)。当发送条目时,这三个文件都会被删除,并且消息在发送时会被锁定。目标列表可以是当前订阅列表的硬链接,而消息则是maildir中投递的消息文件的硬链接。

收件人列表在订阅时被追加,在退订时被重写为新的文件。

许可协议

此代码受零许可繁荣协议许可。它不是免费软件!但是,它可以免费用于非商业用途,并且欢迎贡献。请参见下文。

未来工作

  • 更完整的单元测试
  • 添加列表管理头
  • 解析HTML部分并将它们简化为简单标记
  • 审查原始头以保护隐私
  • 完全隐藏电子邮件地址
  • 欢迎信息
  • 用于退订检测的VERP
    • 尽管它仍然需要在/etc/mail/aliases中的单行上工作,因此也许现在是时候转向+地址而不是更复杂的东西了。
  • 审查队列
    • 连接
    • 发布
  • 一个Web界面
    • 实际上应该是一个独立的项目。
  • 用于订阅和退订人员的命令行

如果您想从事这些工作中的任何一项,请随时。和我谈谈,我们可以讨论付款。您不需要有丰富的经验——这是我的第一个Rust项目,也是学习项目。如果您想尝试,上面的一些事情相当简单。

依赖项

~5.5MB
~159K SLoC