我需要实现一个智能邮件列表/中继(在 Linux 上)。这个想法是:
- 服务器接收到列表地址的电子邮件
- 它解析邮件,并确认它来自受信任的来源
- 它在本地数据库中查找收件人列表
- 它对传入的邮件进行一些次要处理,并将其发送到列表
- 它将所有退回邮件返回给原始发件人
服务器已经安装了 sendmail,但如果需要,我可以使用另一个 MTA。
这听起来很简单,并且 sendmail 已经具有数据库查找功能。但是,我认为这不是特别灵活,并且我不想让 sendmail 独立访问我的数据库。
我最接近现有解决方案的是E-MailRelay,它看起来不错,但如果可以避免的话,我不希望集成它的开销。
我希望在开始之前对我的 B 计划进行健全性检查,或者提供其他建议。我还没有找到任何有用的文档,而且 Sendmail 书似乎没有任何相关内容。
我在想的是:
- 为 sendmail 实现一个 SMTP 传递代理,并让 sendmail 和 DA 在同一台服务器上运行,DA 监听某个未指定的端口(哪个?)
- Sendmail 大概在连接 DA 时充当 SMTP 客户端,而我的 DA 会响应 MAIL/RCPT/DATA 命令
- DA 处理收到的邮件,这些邮件要么是发送到邮件列表的消息,要么是退回邮件,要么可能是回复
- 然后 DA 切换到客户端模式,连接到 sendmail,并发出 MAIL/RCT/DATA 命令以将响应返回给原始发件人
这有意义吗?谢谢。