带白名单的简单 SMTP 中继

带白名单的简单 SMTP 中继

我有一个已编译的 Web 应用程序的测试实例(不是我写的),我想用它做一些测试,但是该应用程序包含客户电子邮件地址,我想不是当我进行上述测试时接收电子邮件。

目前,此 Web 应用使用特定的 SMTP 服务器(称为 SMTP 服务器mail1)在发生各种事件时发送通知电子邮件。为了尽量减少我需要对应用或其数据进行的自定义(这可能会影响测试),我认为避免发送这些电子邮件的解决方案可能是建立一个临时的 SMTP 中继,mail2该中继检查出站电子邮件地址,并且只在mail电子邮件发往特定域时才将电子邮件中继到该域。可以丢弃所有未发往该域的其他电子邮件,或者更好的是,将其转发到该白名单域上的其他地址,以确保它们将有如果没有白名单的话,已经被发送给客户端mail2

我可以用 Postfix 或 Qmail 做这样的事情吗?如果可以,有什么建议可以开始做这件事吗?我以前从未配置过,我想知道是否有完全不同的邮件限制解决方案是我忽略的。也许 Gmail/Google Apps 也可以做?

答案1

取决于您的设置和底层发行版(我假设您使用 Linux)。就我个人而言,我建议使用发行版的工具。因此,如果您的发行版使用 Postfix,请使用 Postfix。如果它使用 Sendmail,请使用 Sendmail。

无论如何我都会推荐 Postfix,因为设置一个简单的 SMTP 网关非常容易。

答案2

最后用 Postfix 完成了这个。main.cf 文件的关键部分是:

relayhost = [mail1.mydomain.com]
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/rcpt_whitelist, reject

rcpt_whitelist 包含:

whitelisted1.com OK
whitelisted2.com OK

然后我就postmap hash:rcpt_whitelist加载它了。

相关内容