Postfix:对于某个地址,仅允许来自某个域的电子邮件

Postfix:对于某个地址,仅允许来自某个域的电子邮件

我已经设置了我的服务器,以便追踪垃圾邮件的来源(并阻止它),我用于注册的电子邮件地址是[电子邮件保护](例如对于 Facebook,[电子邮件保护])。

现在,假设我收到垃圾邮件[电子邮件保护]- (例如来自[电子邮件保护])。我想阻止它们,但继续接收来自 facebook.com 域的电子邮件 - 即我想限制发往某个地址的电子邮件来自某个域。

Postfix 能实现这个功能吗?还是我还需要其他东西?(我已经在运行 Dovecot,虽然它似乎不是合适的工具)。

我没有使用传统的垃圾邮件过滤器,因为上述方法看起来更优雅 - 但是,如果有可以实现上述功能的垃圾邮件过滤器,我会很乐意使用它。

答案1

Haraka 可以轻松处理这种情况,并且可以很容易地在 Postfix 前面进行设置,以便您当前的 Postfix 设置继续按原样工作(或者如果您不想这样做,它可以通过 LMTP 直接传送到 Dovecot)。

你可以像下面这样设置 Haraka 插件:

var net_utils = require('./net_utils');

exports.hook_rcpt = function (next, connection, params) {
    var recip = params[0];
    if (connection.relaying) {
        // Already relaying (i.e. outbound) - skip.
        return next();
    }

    // Get who this is coming from and change a.b.example.com into just example.com
    var check_domain = net_utils.get_organizational_domain(connection.transaction.mail_from.host);

    // Turn 'example.com' into just 'example'
    check_domain = check_domain.replace(/\..*$/, '');

    if (check_domain.toLowerCase() != recip.user.toLowerCase()) {
        return next(DENY, "You dirty dirty spammer");
    }

    next();
}

将其添加到您的插件目录,并在 config/plugins 中添加一行,指定您调用的文件,以便将其加载到您的配置中。

相关内容