diff --git a/README.rst b/README.rst
index 02a8b536310b96ed5e04e33c081c4f9c3690ce02..8890449ef8fc015be45718962193afd774b43fbb 100644
--- a/README.rst
+++ b/README.rst
@@ -89,7 +89,6 @@ TODO
   - collectd_agent.
   - init (via module).
   - ldap_login (with pam_mkhomedir).
-  - mail_forward (OpenBSD support?).
   - ssh_ca.
   - syslog_forwarding.
 - Test.
diff --git a/tasks/mail_forward.yml b/tasks/mail_forward.yml
index 16910f3e980f51e36baf10a3946417f6e04ba5f1..68e20cdfce4841d2e5d2a47aeb67a8bf65b9013f 100644
--- a/tasks/mail_forward.yml
+++ b/tasks/mail_forward.yml
@@ -14,6 +14,11 @@
 
 - name: Set root mail alias
   lineinfile:
-    dest: '/etc/aliases'
+    dest: '{{ aliases_file[ansible_os_family] }}'
     line: 'root: {{ mail_root_alias }}'
     regexp: '^root:'
+  register: root_alias
+
+- name: Update SMTPd database
+  when: ansible_os_family == 'OpenBSD' and root_alias.changed
+  command: /usr/sbin/makemap /etc/mail/aliases
diff --git a/vars/main.yml b/vars/main.yml
index 730915d534342152cb7f6f45dceeabe49a188360..427472d1d179e86f9d735c2918e7a98c35d868df 100644
--- a/vars/main.yml
+++ b/vars/main.yml
@@ -53,3 +53,6 @@ ntp_pool:
 ntpd_service:
     OpenBSD: ntpd
     Debian: ntp
+aliases_file:
+    OpenBSD: /etc/mail/aliases
+    Debian: /etc/aliases