diff --git a/roles/smtprelay/tasks/main.yml b/roles/smtprelay/tasks/main.yml index af21a66..82b5e52 100644 --- a/roles/smtprelay/tasks/main.yml +++ b/roles/smtprelay/tasks/main.yml @@ -4,6 +4,11 @@ file: stunnel.yml when: smtprelay_port not in [587] +- name: Include SMTP remapping + ansible.builtin.include_tasks: + file: smtp_remap.yml + when: smtprelay_origin not in ["mateu.be"] + - name: Install postfix smtp server ansible.builtin.package: name: postfix diff --git a/roles/smtprelay/tasks/smtp_remap.yml b/roles/smtprelay/tasks/smtp_remap.yml new file mode 100644 index 0000000..ef19e53 --- /dev/null +++ b/roles/smtprelay/tasks/smtp_remap.yml @@ -0,0 +1,12 @@ +--- + +- name: "Create {{ item.destination }}" + ansible.builtin.copy: + dest: "{{ item.destination }}" + mode: 0644 + content: | + {{ item.content }} + loop: + - {destination: "/etc/postfix/recipient_canonical", content: "/.+/ root@mateu.be"} + - {destination: "/etc/postfix/header_check", content: "/From:.*/ REPLACE From: root@{{ smtprelay_origin }}"} + - {destination: "/etc/postfix/sender_canonical_maps", content: "/.+/ root@{{ smtprelay_origin }}"} diff --git a/roles/smtprelay/tasks/stunnel.yml b/roles/smtprelay/tasks/stunnel.yml index eacebd0..7b09cc6 100644 --- a/roles/smtprelay/tasks/stunnel.yml +++ b/roles/smtprelay/tasks/stunnel.yml @@ -1,21 +1,21 @@ --- - name: Install stunnel - package: + ansible.builtin.package: name: stunnel4 state: present - name: SMTP wrapper - template: + ansible.builtin.template: src: smtp-wrapper.conf.j2 dest: /etc/stunnel/smtp-wrapper.conf mode: 0644 notify: Restart stunnel4 - name: Rewrite var smtprelay_host - set_fact: + ansible.builtin.set_fact: smtprelay_host: "localhost" - name: Rewrite var smtprelay_port - set_fact: + ansible.builtin.set_fact: smtprelay_port: "2{{ smtprelay_port }}" diff --git a/roles/smtprelay/templates/main.cf.j2 b/roles/smtprelay/templates/main.cf.j2 index 178404d..e8b485f 100644 --- a/roles/smtprelay/templates/main.cf.j2 +++ b/roles/smtprelay/templates/main.cf.j2 @@ -8,6 +8,13 @@ myorigin = {{ smtprelay_origin }} # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h +{% if smtprelay_origin not in ["mateu.be"] %} +recipient_canonical_maps = regexp:/etc/postfix/recipient_canonical +sender_canonical_classes = envelope_sender, header_sender +sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps +smtp_header_checks = regexp:/etc/postfix/header_check +{% endif %} + alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mydestination = $myhostname, localhost.$mydomain, localhost