0

我需要实现一个智能邮件列表/中继(在 Linux 上)。这个想法是:

  1. 服务器接收到列表地址的电子邮件
  2. 它解析邮件,并确认它来自受信任的来源
  3. 它在本地数据库中查找收件人列表
  4. 它对传入的邮件进行一些次要处理,并将其发送到列表
  5. 它将所有退回邮件返回给原始发件人

服务器已经安装了 sendmail,但如果需要,我可以使用另一个 MTA。

这听起来很简单,并且 sendmail 已经具有数据库查找功能。但是,我认为这不是特别灵活,并且我不想让 sendmail 独立访问我的数据库。

我最接近现有解决方案的是E-MailRelay,它看起来不错,但如果可以避免的话,我不希望集成它的开销。

我希望在开始之前对我的 B 计划进行健全性检查,或者提供其他建议。我还没有找到任何有用的文档,而且 Sendmail 书似乎没有任何相关内容。

我在想的是:

  1. 为 sendmail 实现一个 SMTP 传递代理,并让 sendmail 和 DA 在同一台服务器上运行,DA 监听某个未指定的端口(哪个?)
  2. Sendmail 大概在连接 DA 时充当 SMTP 客户端,而我的 DA 会响应 MAIL/RCPT/DATA 命令
  3. DA 处理收到的邮件,这些邮件要么是发送到邮件列表的消息,要么是退回邮件,要么可能是回复
  4. 然后 DA 切换到客户端模式,连接到 sendmail,并发出 MAIL/RCT/DATA 命令以将响应返回给原始发件人

这有意义吗?谢谢。

4

1 回答 1

0

事实证明这很简单,尽管我没有使用 sendmail 传递代理 - 我只是在 SMTP 中做了所有事情。服务器有两个 IP 地址,并且 sendmail 已经在 IP#1 的 25 端口上侦听。

我编写了一个 SMTP 代理,它侦听 IP#2 上的端口 25。这会运行一个 SMTP 服务器,该服务器接受传入的消息并重新写入它们。然后它(作为客户端)连接到 IP#1 上的端口 25,将重写的消息发送到 sendmail。然后 sendmail 处理到重写的目标地址的传输。这对原始邮件客户端来说都是透明的。

不过,如果服务器只有一个 IP 地址,我不确定该怎么做。

于 2014-10-28T17:03:01.547 回答