Maddy
跳转到导航
跳转到搜索
配置片段
发件人检查
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"
}
}