Postfixadmin mailbox deletion

This commit is contained in:
Julian Rother 2025-02-09 20:12:11 +01:00
parent 08ddca07c8
commit 5816c705d4
Signed by: julian
GPG key ID: C19B924C0CD13341
4 changed files with 46 additions and 0 deletions

View file

@ -94,3 +94,4 @@ mailserver:
show_footer_text: 'NO'
quota_multiplier: '1048576'
page_size: '500'
mailbox_postdeletion_script: sudo -u vmail /etc/postfixadmin/mailbox-postdeletion.sh

View file

@ -63,6 +63,36 @@
mode: 0700
path: /var/cache/postfixadmin/templates_c
- name: copy postfixadmin mailbox postdeletion script
ansible.builtin.template:
src: postfixadmin/mailbox-postdeletion.sh.j2
dest: /etc/postfixadmin/mailbox-postdeletion.sh
owner: root
group: root
mode: "0755"
- name: copy postfixadmin sudoers config
ansible.builtin.template:
src: postfixadmin/sudoers.j2
dest: /etc/sudoers.d/10-postfixadmin
owner: root
group: root
mode: "0644"
- name: create directory for deleted mailboxes
ansible.builtin.file:
state: directory
owner: vmail
group: vmail
mode: 0700
path: /var/mail/vmail/.deleted/
- name: add cronjob to cleanup deleted mailboxes
ansible.builtin.cron:
name: cleanup deleted mailboxes
job: 'find /var/mail/vmail/.deleted/ -mindepth 1 -maxdepth 1 -mtime +1 -exec rm -r {} \;'
minute: "37"
# php_version and "restart php-fpm" handler from nginx role
- name: create postfixadmin php pool
ansible.builtin.template:

View file

@ -0,0 +1,14 @@
#!/bin/sh
# Parameters: (1) username (2) domain
# username = localpart@domain
localpart="${1%%@*}"
domain="${1#*@}"
set -e
test -d "/var/mail/vmail/$domain/$localpart" || exit 0
touch "/var/mail/vmail/$domain/$localpart"
mv "/var/mail/vmail/$domain/$localpart" "/var/mail/vmail/.deleted/$(date '+%Y%m%d%H%M%S')-$localpart@$domain"

View file

@ -0,0 +1 @@
postfixadmin ALL = (vmail) NOPASSWD: /etc/postfixadmin/mailbox-postdeletion.sh