Add configs for virtual email aliases

This commit is contained in:
Râu Cao 2024-01-08 11:29:56 +03:00
parent cfa7da2051
commit 98acd429de
Signed by: raucao
GPG Key ID: 37036C356E56CC51
4 changed files with 34 additions and 5 deletions

View File

@ -22,7 +22,17 @@
"email": {
"domain": "kosmos.org",
"hostname": "mail.kosmos.org",
"report_contact": "abuse@kosmos.org"
"report_contact": "abuse@kosmos.org",
"virtual_aliases": {
"admin@kosmos.org": "ops@kosmos.org",
"ops@kosmos.org": "ops@5apps.com",
"webmaster": "mail@kosmos.org",
"hostmaster@kosmos.org": "mail@kosmos.org",
"postmaster@kosmos.org": "mail@kosmos.org",
"abuse@kosmos.org": "mail@kosmos.org",
"mail@kosmos.org": "foundation@kosmos.org",
"hackerhouse@kosmos.org": "mail@lagrange6.com"
}
},
"garage": {
"replication_mode": "2",

View File

@ -1,5 +1,9 @@
node.default["email"]["root_directory"] = "/var/vmail"
node.default["email"]["domain"] = "example.com"
node.default["email"]["hostname"] = "mail.example.com"
node.default["email"]["report_contact"] = "abuse@example.com"
node.default["email"]["ldap_host"] = "ldap.kosmos.local"
node.default["email"]["ldap_search_base"] = "cn=users,dc=kosmos,dc=org"
node.default["email"]["virtual_aliases"] = {
"admin@example.com" => "administrator@example.com"
}

View File

@ -12,6 +12,7 @@ end
domain = node["email"]["domain"]
hostname = node["email"]["hostname"]
root_dir = node["email"]["root_directory"]
ip_addr = node["knife_zero"]["host"]
ldap_host = node["email"]["ldap_host"]
@ -37,13 +38,10 @@ node.normal['postfix']['main']['mailbox_transport'] = "lmtp:unix:private/dovecot
node.normal['postfix']['main']['virtual_transport'] = "lmtp:unix:private/dovecot-lmtp"
node.normal['postfix']['main']['smtputf8_enable'] = "no"
node.normal['postfix']['main']['recipient_delimiter'] = "+"
# node.normal['postfix']['main']['virtual_alias_domains'] = "ldap:/etc/postfix/ldap-virtual_alias_domains.cf"
node.normal['postfix']['main']['virtual_alias_maps'] = "hash:/var/vmail/aliases, ldap:/etc/postfix/ldap-virtual_alias_maps.cf"
node.normal['postfix']['main']['virtual_alias_maps'] = "hash:#{root_dir}/aliases, ldap:/etc/postfix/ldap-virtual_alias_maps.cf"
node.normal['postfix']['main']['virtual_mailbox_domains'] = "ldap:/etc/postfix/ldap-virtual_mailbox_domains.cf"
node.normal['postfix']['main']['virtual_mailbox_maps'] = "ldap:/etc/postfix/ldap-virtual_mailbox_maps.cf"
node.normal['postfix']['main']['smtpd_sender_login_maps'] = "ldap:/etc/postfix/ldap-smtpd_sender_login_maps.cf"
node.normal['postfix']['main']['milter_protocol'] = "6"
node.normal['postfix']['main']['milter_default_action'] = "accept"
node.normal['postfix']['main']['smtpd_milters'] = "inet:localhost:12301 local:spamass/spamass.sock"
@ -130,6 +128,20 @@ node.normal['postfix']['master'] = {
}
}
bash "compile_postfix_aliases" do
cwd root_dir
code "postmap #{root_dir}/aliases"
action :nothing
notifies :restart, "service[postfix]", :delayed
end
template "#{root_dir}/aliases" do
source "virtual-aliases.erb"
mode 0755
variables aliases: node["email"]["virtual_aliases"]
notifies :run, "bash[compile_postfix_aliases]", :immediately
end
ldap_default_variables = {
server_host: ldap_host,
bind_dn: credentials['ldap_dn'],

View File

@ -0,0 +1,3 @@
<% @aliases.each do |k, v| %>
<%= "#{k}\t#{v}" %>
<% end %>