diff --git a/dovecot/defaults/main.yml b/dovecot/defaults/main.yml
index a6371128fded0c70bc0d13c6792c5b54398ef93d..9c147a9d19eda065d5da70e23ad87915ae8391af 100644
--- a/dovecot/defaults/main.yml
+++ b/dovecot/defaults/main.yml
@@ -29,3 +29,4 @@ dovecot_dsync_host_attribute: ansible_host
 
 dovecot_content_filter: false
 dovecot_spam_folder: Spam
+dovecot_spam_user: "${1}" # debian-spamd
diff --git a/dovecot/files/sa-learn-ham.sh b/dovecot/files/sa-learn-ham.sh
deleted file mode 100644
index d18e5539c0b6638538012f3641e90594b3471ef6..0000000000000000000000000000000000000000
--- a/dovecot/files/sa-learn-ham.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-# you can also use tcp/ip here, consult spamc(1)
-exec /usr/bin/spamc -u ${1} -L ham -C report
diff --git a/dovecot/files/sa-learn-spam.sh b/dovecot/files/sa-learn-spam.sh
deleted file mode 100644
index 69b3608336d6641b9459f25b8c5bdee09c4cc42a..0000000000000000000000000000000000000000
--- a/dovecot/files/sa-learn-spam.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-# you can also use tcp/ip here, consult spamc(1)
-exec /usr/bin/spamc -u ${1} -L spam -C report
diff --git a/dovecot/tasks/main.yml b/dovecot/tasks/main.yml
index 85f52d9ec5154566f10689e1511863349808ea13..9148c20fcb5f2256868b26504483622304783b32 100644
--- a/dovecot/tasks/main.yml
+++ b/dovecot/tasks/main.yml
@@ -70,7 +70,7 @@
 
 - name: ensure the global spam filter and learning sieve script have correct permissions
   file:
-    state: present
+    state: file
     path: "/var/lib/dovecot/sieve.d/{{ item }}"
     mode: '0640'
     owner: dovecot
@@ -86,8 +86,8 @@
     - mail
 
 - name: ensure scripts for learning spam are present
-  copy:
-    src: "{{ item }}"
+  template:
+    src: "{{ item }}.j2"
     dest: "/var/lib/dovecot/sieve.d/{{ item }}"
     mode: '0750'
     owner: dovecot
diff --git a/dovecot/templates/sa-learn-ham.sh.j2 b/dovecot/templates/sa-learn-ham.sh.j2
new file mode 100644
index 0000000000000000000000000000000000000000..8b9805660620ae1ba21e7726e243a84ca4148849
--- /dev/null
+++ b/dovecot/templates/sa-learn-ham.sh.j2
@@ -0,0 +1,3 @@
+#!/bin/sh
+# you can also use tcp/ip here, consult spamc(1)
+exec /usr/bin/spamc -u {{ dovecot_spam_user }} -L ham -C report
diff --git a/dovecot/templates/sa-learn-spam.sh.j2 b/dovecot/templates/sa-learn-spam.sh.j2
new file mode 100644
index 0000000000000000000000000000000000000000..3eb5f4a021e202008b0ee11864ac931407e66e7c
--- /dev/null
+++ b/dovecot/templates/sa-learn-spam.sh.j2
@@ -0,0 +1,3 @@
+#!/bin/sh
+# you can also use tcp/ip here, consult spamc(1)
+exec /usr/bin/spamc -u {{ dovecot_spam_user }} -L spam -C report