Maddy

来自百合仙子's Wiki
跳转到导航 跳转到搜索

配置片段

发件人检查

table.chain sender_check {
    optional_step static {
        entry noreply@example.org *
    }
    step identity
}

submission tls://0.0.0.0:465 tcp://0.0.0.0:587 {
    ...

    source $(local_domains) {
        check {
            authorize_sender {
                prepare_email &local_rewrites
                user_to_email &sender_check
            }
        }

        ...
    }

    ...
}

收件人重写

如果要求所有收件人都在数据库表里,可以写:

table.chain local_rewrites {
    optional_step regexp "(.+)\+(.+)@(.+)" "$1@$3"
    optional_step static {
        entry postmaster postmaster@$(primary_domain)
    }
    optional_step file /etc/maddy/aliases
    step sql_query {
        driver postgres
        dsn "user=maddy host=/run/postgresql dbname=maddy sslmode=disable"
        lookup "SELECT mailname FROM mailusers.mailinfo WHERE $1 = ANY(alias) and new = false"
    }
}

否则,最后一步使用optional_step的话,地址的输入和输出都要使用完整地址,不能只写前缀,如:

table.chain local_rewrites {
    optional_step regexp "forum\+(.+)@(.+)" "noreply@$2"
    optional_step regexp "(.+)\+(.+)@(.+)" "$1@$3"
    optional_step static {
        entry postmaster postmaster@$(primary_domain)
    }
    optional_step file /etc/maddy/aliases
    optional_step sql_query {
        driver postgres
        dsn "user=maddy host=/run/postgresql dbname=maddy sslmode=disable"
        lookup "SELECT mailname || '@example.org' FROM mailusers.mailinfo WHERE regexp_replace($1, '@example.org$', '') = ANY(alias) and new = false"
    }
}

外部链接