{"id":19402196,"url":"https://github.com/robertdebock/ansible-role-postfix","last_synced_at":"2026-01-30T11:40:16.242Z","repository":{"id":39459548,"uuid":"115284391","full_name":"robertdebock/ansible-role-postfix","owner":"robertdebock","description":"Install and configure postfix on your system.","archived":false,"fork":false,"pushed_at":"2025-10-16T12:45:26.000Z","size":403,"stargazers_count":18,"open_issues_count":8,"forks_count":22,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-17T15:38:48.373Z","etag":null,"topics":["ansible","installer","mailserver","molecule","package","playbook","postfix","security","system","tox"],"latest_commit_sha":null,"homepage":"https://robertdebock.nl/","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robertdebock.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"robertdebock"}},"created_at":"2017-12-24T19:55:45.000Z","updated_at":"2025-10-16T12:45:31.000Z","dependencies_parsed_at":"2023-02-12T15:30:42.264Z","dependency_job_id":"ef1cd2bd-e171-4c51-9af0-d20b6b1b5db9","html_url":"https://github.com/robertdebock/ansible-role-postfix","commit_stats":null,"previous_names":[],"tags_count":86,"template":false,"template_full_name":null,"purl":"pkg:github/robertdebock/ansible-role-postfix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertdebock%2Fansible-role-postfix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertdebock%2Fansible-role-postfix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertdebock%2Fansible-role-postfix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertdebock%2Fansible-role-postfix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robertdebock","download_url":"https://codeload.github.com/robertdebock/ansible-role-postfix/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robertdebock%2Fansible-role-postfix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28911850,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T08:15:08.179Z","status":"ssl_error","status_checked_at":"2026-01-30T08:14:31.507Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","installer","mailserver","molecule","package","playbook","postfix","security","system","tox"],"created_at":"2024-11-10T11:22:31.209Z","updated_at":"2026-01-30T11:40:16.237Z","avatar_url":"https://github.com/robertdebock.png","language":"Jinja","funding_links":["https://github.com/sponsors/robertdebock"],"categories":[],"sub_categories":[],"readme":"# [Ansible role postfix](#ansible-role-postfix)\n\nInstall and configure postfix on your system.\n\n|GitHub|GitLab|Downloads|Version|\n|------|------|---------|-------|\n|[![github](https://github.com/robertdebock/ansible-role-postfix/workflows/Ansible%20Molecule/badge.svg)](https://github.com/robertdebock/ansible-role-postfix/actions)|[![gitlab](https://gitlab.com/robertdebock-iac/ansible-role-postfix/badges/master/pipeline.svg)](https://gitlab.com/robertdebock-iac/ansible-role-postfix)|[![downloads](https://img.shields.io/ansible/role/d/robertdebock/postfix)](https://galaxy.ansible.com/robertdebock/postfix)|[![Version](https://img.shields.io/github/release/robertdebock/ansible-role-postfix.svg)](https://github.com/robertdebock/ansible-role-postfix/releases/)|\n\n## [Example Playbook](#example-playbook)\n\nThis example is taken from [`molecule/default/converge.yml`](https://github.com/robertdebock/ansible-role-postfix/blob/master/molecule/default/converge.yml) and is tested on each push, pull request and release.\n\n```yaml\n---\n- name: Converge\n  hosts: all\n  become: true\n  gather_facts: true\n\n  roles:\n    - role: robertdebock.postfix\n      postfix_myhostname: \"smtp.example.com\"\n      postfix_mydomain: \"example.com\"\n      postfix_myorigin: \"example.com\"\n      postfix_aliases:\n        - name: root\n          destination: test@example.com\n```\n\nThe machine needs to be prepared. In CI this is done using [`molecule/default/prepare.yml`](https://github.com/robertdebock/ansible-role-postfix/blob/master/molecule/default/prepare.yml):\n\n```yaml\n---\n- name: Prepare\n  hosts: all\n  become: true\n  gather_facts: false\n\n  roles:\n    - role: robertdebock.bootstrap\n    - role: robertdebock.core_dependencies\n```\n\nAlso see a [full explanation and example](https://robertdebock.nl/how-to-use-these-roles.html) on how to use these roles.\n\n## [Role Variables](#role-variables)\n\nThe default values for the variables are set in [`defaults/main.yml`](https://github.com/robertdebock/ansible-role-postfix/blob/master/defaults/main.yml):\n\n```yaml\n---\n# defaults file for postfix\n\n# These settings are required in postfix.\npostfix_myhostname: \"{{ ansible_fqdn }}\"\npostfix_mydomain: \"{{ ansible_domain | default('localdomain', true) }}\"\npostfix_myorigin: \"{{ ansible_domain | default('localdomain', true) }}\"\n\n# To \"listen\" on public interfaces, set inet_interfaces to something like\n# \"all\" or the name of the interface, such as \"eth0\".\npostfix_inet_interfaces: \"loopback-only\"\n\n# Enable IPv4, and IPv6 if supported - if IPV4 only set to ipv4\npostfix_inet_protocols: all\n\n# Set an address type preference for SMTP connection (Any, ipv4, ipv6)\npostfix_smtp_address_preference: any\n\n# Set a banner\npostfix_banner: \"$myhostname ESMTP $mail_name\"\n\n# The destination tells Postfix what mails to accept mail for.\npostfix_mydestination:\n  - \"$mydomain\"\n  - \"$myhostname\"\n  - \"localhost.$mydomain\"\n  - \"localhost\"\n\n# To accept email from other machines, set the mynetworks to something like\n# \"- 192.168.0.0/24\".\npostfix_mynetworks:\n  - 127.0.0.0/8\n  - \"[::1]/128\"\n\n# These settings change the role of the postfix server to a relay host.\n# postfix_relay_domains: \"$mydestination\"\n\n# If you want to forward emails to another central relay server, set relayhost.\n# use brackets to sent to the A-record of the relayhost.\n# postfix_relayhost: \"[relay.example.com]\"\n\n# Set the restrictions for receiving mails.\npostfix_smtpd_recipient_restrictions:\n  - permit_mynetworks\n  - permit_sasl_authenticated\n  - reject_unauth_destination\n  - reject_invalid_hostname\n  - reject_non_fqdn_hostname\n  - reject_non_fqdn_sender\n  - reject_non_fqdn_recipient\n  - reject_unknown_sender_domain\n  - reject_unknown_recipient_domain\n  - reject_rbl_client sbl.spamhaus.org\n  - reject_rbl_client cbl.abuseat.org\n  - reject_rbl_client dul.dnsbl.sorbs.net\n  - permit\n\npostfix_smtpd_sender_restrictions:\n  - reject_unknown_sender_domain\n\n# Set the restrictions for client access.\n# postfix_smtpd_client_restrictions:\n#   - permit_mynetworks\n#   - reject_unknown_client\n#   - permit\n\n# Set the restrictions for relaying.\n# postfix_smtpd_relay_restrictions:\n#   - permit_mynetworks\n#   - permit_sasl_authenticated\n#   - defer_unauth_destination\n\n# The default SMTP TLS security level for the Postfix SMTP client\n# Valid values are: dane, encrypt, fingerprint, may, none, secure, verify\npostfix_smtp_tls_security_level: none\n\n# To enable spamassassin, ensure spamassassin is installed,\n# (hint: role: robertdebock.spamassassin) and set these two variables:\n# postfix_spamassassin: enabled\n# postfix_spamassassin_user: spamd\n\n# To enable clamav, ensure clamav is installed,\n# (hint: role: robertdebock.clamav) and set this variable:\n# postfix_clamav: enabled\n\n# You can configure aliases here. Typically redirecting `root` is a good plan.\n# postfix_aliases:\n#   - name: root\n#     destination: robert@meinit.nl\n\n# You can configure smtp_generics for address rewriting here.\n# postfix_smtp_generic:\n#   - envelope_or_header_address: @localdomain.local\n#     sender_address: robert@meinit.nl\n\n# You can configure sender access controls here.\n# postfix_sender_access:\n#   - domain: gooddomain.com\n#     action: OK\n#   - domain: baddomain.com\n#     action: REJECT\n\n# You can configure recipient access controls here.\n# postfix_recipient_access:\n#   - domain: gooddomain.com\n#     action: OK\n#   - domain: baddomain.com\n#     action: REJECT\n\n# You can disable SSL/TLS versions here.\n# postfix_tls_protocols: '!SSLv2, !SSLv3, !TLSv1, !TLSv1.1'\n\n# You can supply a transport_maps Jinja2 template here\n# postfix_transport_maps_template: /path/to/transport.j2\n\n# You can supply a header_checks Jinja2 template here\n# postfix_header_checks_template: /path/to/header_checks.j2\n\n# Whether or not to use the local biff service.\n# postfix_biff: true\n\n# With locally submitted mail, append the string \".$mydomain\" to addresses that have no \".domain\" information\n# postfix_append_dot_mydomain: false\n\n# The alias databases that are used for local(8) delivery\n# postfix_alias_maps: \"lmdb:/etc/aliases\"\n\n# A prefix that the virtual(8) delivery agent prepends to all pathname results from $virtual_mailbox_maps table lookups.\n# postfix_virtual_mailbox_base: /var/mail\n\n# Optional lookup tables with all valid addresses in the domains that match $virtual_mailbox_domains.\n# postfix_virtual_mailbox_maps: mysql:/etc/postfix/mysql-virtual_mailbox_maps.cf\n\n# Postfix is final destination for the specified list of domains; mail is delivered via the $virtual_transport mail delivery transport\n# postfix_virtual_mailbox_domains: \"$virtual_mailbox_maps\"\n\n# Postfix is final destination for the specified list of virtual alias domains, that is, domains for which all addresses are aliased to addresses in other local or remote domains.\n# postfix_virtual_alias_domains: \"$virtual_alias_maps\"\n\n# Optional lookup tables that alias specific mail addresses or domains to other local or remote address.\n# postfix_virtual_alias_maps: \"$virtual_maps\"\n\n# Lookup tables with the per-recipient user ID that the virtual(8) delivery agent uses while writing to the recipient's mailbox.\n# postfix_virtual_uid_maps: \"static:2000\"\n\n# Lookup tables with the per-recipient group ID for virtual(8) mailbox delivery.\n# postfix_virtual_gid_maps: \"static:2000\"\n\n# Enable SASL authentication in the Postfix SMTP server.\n# postfix_smtpd_sasl_auth_enable: true\n\n# The name of the Postfix SMTP server's local SASL authentication realm.\n# postfix_smtpd_sasl_local_domain: $myhostname\n\n# Postfix SMTP server SASL security options; as of Postfix 2.3 the list of available features depends on the SASL server implementation that is selected with smtpd_sasl_type.\n# postfix_smtpd_sasl_security_options: noanonymous\n\n# Report the SASL authenticated user name in the smtpd(8) Received message header.\n# postfix_smtpd_sasl_authenticated_header: true\n\n# Enable interoperability with remote SMTP clients that implement an obsolete version of the AUTH command (RFC 4954).\n# postfix_broken_sasl_auth_clients: false\n\n# A file containing (PEM format) CA certificates of root CAs trusted to sign either remote SMTP client certificates or intermediate CA certificates.\n# postfix_smtpd_tls_CAfile: /etc/letsencrypt/live/smtp.syhosting.ch/chain.pem\n\n# File with the Postfix SMTP server RSA certificate in PEM format.\n# postfix_smtpd_tls_cert_file: /etc/letsencrypt/live/smtp.syhosting.ch/cert.pem\n\n# Local file with the Postfix SMTP server RSA certificate in PEM format which shall be copied to the target host.\n# postfix_smtpd_tls_cert_file_source: ./certs/cert.pem\n\n# File with the Postfix SMTP server RSA private key in PEM format.\n# postfix_smtpd_tls_key_file: /etc/letsencrypt/live/smtp.syhosting.ch/privkey.pem\n\n# Local file with the Postfix SMTP server RSA private key in PEM format which shall be copied to the target host.\n# postfix_smtpd_tls_key_file_source: ./certs/privkey.pem\n\n# Request that the Postfix SMTP server produces Received: message headers that include information about the protocol and cipher used, as well as the remote SMTP client CommonName and client certificate issuer CommonName.\n# postfix_smtpd_tls_received_header: true\n\n# The default SMTP TLS security level for the Postfix SMTP client; when a non-empty value is specified, this overrides the obsolete parameters smtp_use_tls, smtp_enforce_tls, and smtp_tls_enforce_peername.\n# postfix_smtpd_tls_security_level: may\n\n# Ask a remote SMTP client for a client certificate.\n# postfix_smtpd_tls_ask_ccert: true\n\n# Enable additional Postfix SMTP server logging of TLS activity.\n# postfix_smtpd_tls_loglevel: 1\n\n# Name of the file containing the optional Postfix SMTP server TLS session cache.\n# postfix_smtpd_tls_session_cache_database: btree:/var/lib/postfix/smtpd_tls_session_cache\n\n# A file containing CA certificates of root CAs trusted to sign either remote SMTP server certificates or intermediate CA certificates.\n# postfix_smtp_tls_cafile: /etc/letsencrypt/live/smtp.syhosting.ch/chain.pem\n\n# Enable TLS in the Postfix SMTP client, by default opportunistically.\n# Valid values are: yes, no\n# postfix_smtp_use_tls: no\n\n# Log the hostname of a remote SMTP server that offers STARTTLS, when TLS is not already enabled for that server.\n# Valid values are: yes, no\n# postfix_smtp_tls_note_starttls_offer: no\n\n# A file containing CA certificates of root CAs trusted to sign either remote SMTP server certificates or intermediate CA certificates.\n# postfix_smtp_tls_cafile: \"\"\n\n# A directory containing CA certificates of root CAs trusted to sign either remote SMTP server certificates or intermediate CA certificates.\n# postfix_smtp_tls_capath: \"\"\n\n# Append the system default CA certificates to the ones specified with smtp_tls_CAfile or smtp_tls_CApath.\n# Valid values are: yes, no\n# postfix_tls_append_default_ca: no\n\n# File with the Postfix SMTP client RSA certificate in PEM format.\n# postfix_smtp_tls_cert_file: /etc/letsencrypt/live/smtp.syhosting.ch/cert.pem\n\n# File with the Postfix SMTP client RSA private key in PEM format.\n# postfix_smtp_tls_key_file: /etc/letsencrypt/live/smtp.syhosting.ch/privkey.pem\n\n# Name of the file containing the optional Postfix SMTP client TLS session cache.\n# postfix_smtp_tls_session_cache_database: btree:/var/lib/postfix/smtp_tls_session_cache\n\n# The external entropy source for the in-memory tlsmgr(8) pseudo random number generator (PRNG) pool.\n# postfix_tls_random_source: dev:/dev/urandom\n\n# TLS protocols accepted by the Postfix SMTP server with mandatory TLS encryption.\n# postfix_smtpd_tls_mandatory_protocols: TLSv1\n\n# TLS protocols that the Postfix SMTP client will use with mandatory TLS encryption.\n# postfix_smtp_tls_mandatory_protocols: TLSv1\n\n# The default mail delivery transport and next-hop destination for final delivery to domains listed with $virtual_mailbox_domains.\n# postfix_virtual_transport: maildrop1\n\n# Optional pathname of a mailbox file relative to a local(8) user's home directory.\n# postfix_home_mailbox: Maildir/\n\n# The maximal size in bytes of a message, including envelope information.\n# postfix_message_size_limit: 10240000\n\n# The maximal size of any local(8) individual mailbox or maildir file, or zero (no limit). This limit must not be smaller than the message size limit\n# postfix_mailbox_size_limit: 0\n\n# Require that a remote SMTP client introduces itself with the HELO or EHLO command before sending the MAIL command or other commands that require EHLO negotiation.\n# postfix_smtpd_helo_required: false\n\n# The time unit over which client connection rates and other rates are calculated.\n# postfix_anvil_rate_time_unit: 60s\n\n# The maximal number of connection attempts any client is allowed to make to this service per time unit.\n# postfix_smtpd_client_connection_rate_limit: 10\n\n# How many simultaneous connections any client is allowed to make to this service.\n# postfix_smtpd_client_connection_count_limit: 10\n\n# Consider a bounce message as undeliverable, when delivery fails with a temporary error, and the time in the queue has reached the bounce_queue_lifetime limit.\n# postfix_bounce_queue_lifetime: 5d\n\n# The location of Postfix README files that describe how to build, configure or operate a specific Postfix subsystem or feature.\n# postfix_readme_directory: /usr/share/doc/postfix\n\n# The location of Postfix HTML files that describe how to build, configure or operate a specific Postfix subsystem or feature.\n# postfix_html_directory: /usr/share/doc/postfix/html\n\n# List of custom master.cf entries if more services are needed outside of postfix defaults\n# postfix_master_custom: []\n\n# Yaml list (or string of comma-separated list) of Postfix before-queue SMTP-only milters\n# postfix_smtpd_milters: []\n\n# Yaml list (or string of comma-separated list) of Postfix before-queue non-SMTP milters\n# postfix_non_smtpd_milters: []\n\n# What to do in case of errors from milters? Specify accept, reject, tempfail, or quarantine (Postfix 2.6 or later).\n# postfix_milter_default_action: accept\n\n# You can change the port where Postfix listens on.\n# Postfix used `/etc/services` to map service names to port numbers like `2525`.\n# So either specify a port number or a service name like `smtp`.\npostfix_smtp_listen_port: smtp\n\npostfix_smtp_sasl_auth_enable: false\npostfix_smtp_sasl_password_map: \"\"\npostfix_smtp_sasl_security_options: \"\"\npostfix_smtp_tls_wrappermode: false\npostfix_smtp_sasl_password_map_content: \"\"\n\n# Enable TLS in the Postfix SMTP client, by default opportunistically.\n# Valid values are: yes, no\npostfix_smtp_use_tls: \"no\"\n\n# Log the hostname of a remote SMTP server that offers STARTTLS, when TLS is not already enabled for that server.\n# Valid values are: yes, no\npostfix_smtp_tls_note_starttls_offer: \"no\"\n\n# A file containing CA certificates of root CAs trusted to sign either remote SMTP server certificates or intermediate CA certificates.\npostfix_smtp_tls_cafile: \"\"\n\n# A directory containing CA certificates of root CAs trusted to sign either remote SMTP server certificates or intermediate CA certificates.\npostfix_smtp_tls_capath: \"\"\n\n# Append the system default CA certificates to the ones specified with smtp_tls_CAfile or smtp_tls_CApath.\n# Valid values are: yes, no\npostfix_tls_append_default_ca: \"no\"\n\n# Enable sender-dependent SASL authentication in the Postfix SMTP client.\n# Valid values are: yes, no\n# postfix_smtp_sender_dependent_authentication: no\n\n# Optional lookup table with the per-sender SMTP relay host, user name and password information.\n# postfix_sender_dependent_relayhost_maps: lmdb:/etc/postfix/sender_relayhost_maps\n# postfix_sender_dependent_relayhost_maps_content: |\n#   user@example.com [relay.example.com]:587\n#   user2@example.com [relay2.example.com]:587\n\n# What addresses are subject to sender_canonical_maps address mapping.\n# Valid values are: envelope_sender, header_sender, envelope_sender, header_sender\npostfix_sender_canonical_classes: \"envelope_sender, header_sender\"\n\n# Optional lookup tables that perform sender address rewriting for mail that originates on the local machine.\n# postfix_sender_canonical_maps: lmdb:/etc/postfix/sender_canonical_maps\n# postfix_sender_canonical_maps_content: |\n#   user@example.com newuser@example.com\n#   user2@example.com newuser2@example.com\n\n# Optional lookup tables that perform address rewriting for outgoing mail.\n# Transform a locally valid address into a globally valid address when sending mail across the Internet.\n# This is needed when the local machine does not have its own Internet domain name, but uses something like localdomain.local instead.\n# postfix_smtp_generic_maps: lmdb:/etc/postfix/smtp_generic_maps\n# postfix_smtp_generic_maps_content: |\n#   user@localdomain.local user@example.com\n#   user2@localdomain.local user2@example.com\n\n# Debugging options\n# The increment in verbose logging level when an SMTP client or server host name or address matches a pattern in the debug_peer_list parameter.\npostfix_debug_peer_level: 2\n\n# An optional list of domain or network patterns, /file/name patterns or type:name tables.\n# When an SMTP client or server host name or address matches a pattern, increase the verbose logging level by the amount specified in the debug_peer_level parameter.\n# postfix_debug_peer_list:\n#   - 127.0.0.1\n#   - some.domain\n```\n\n## [Requirements](#requirements)\n\n- pip packages listed in [requirements.txt](https://github.com/robertdebock/ansible-role-postfix/blob/master/requirements.txt).\n\n## [State of used roles](#state-of-used-roles)\n\nThe following roles are used to prepare a system. You can prepare your system in another way.\n\n| Requirement | GitHub | GitLab |\n|-------------|--------|--------|\n|[robertdebock.bootstrap](https://galaxy.ansible.com/robertdebock/bootstrap)|[![Build Status GitHub](https://github.com/robertdebock/ansible-role-bootstrap/workflows/Ansible%20Molecule/badge.svg)](https://github.com/robertdebock/ansible-role-bootstrap/actions)|[![Build Status GitLab](https://gitlab.com/robertdebock-iac/ansible-role-bootstrap/badges/master/pipeline.svg)](https://gitlab.com/robertdebock-iac/ansible-role-bootstrap)|\n|[robertdebock.core_dependencies](https://galaxy.ansible.com/robertdebock/core_dependencies)|[![Build Status GitHub](https://github.com/robertdebock/ansible-role-core_dependencies/workflows/Ansible%20Molecule/badge.svg)](https://github.com/robertdebock/ansible-role-core_dependencies/actions)|[![Build Status GitLab](https://gitlab.com/robertdebock-iac/ansible-role-core_dependencies/badges/master/pipeline.svg)](https://gitlab.com/robertdebock-iac/ansible-role-core_dependencies)|\n\n## [Context](#context)\n\nThis role is part of many compatible roles. Have a look at [the documentation of these roles](https://robertdebock.nl/) for further information.\n\nHere is an overview of related roles:\n![dependencies](https://raw.githubusercontent.com/robertdebock/ansible-role-postfix/png/requirements.png \"Dependencies\")\n\n## [Compatibility](#compatibility)\n\nThis role has been tested on these [container images](https://hub.docker.com/u/robertdebock):\n\n|container|tags|\n|---------|----|\n|[EL](https://hub.docker.com/r/robertdebock/enterpriselinux)|9|\n|[Debian](https://hub.docker.com/r/robertdebock/debian)|all|\n|[Fedora](https://hub.docker.com/r/robertdebock/fedora)|all|\n|[Ubuntu](https://hub.docker.com/r/robertdebock/ubuntu)|all|\n\nThe minimum version of Ansible required is 2.12, tests have been done on:\n\n- The previous version.\n- The current version.\n- The development version.\n\nIf you find issues, please register them on [GitHub](https://github.com/robertdebock/ansible-role-postfix/issues).\n\n## [License](#license)\n\n[Apache-2.0](https://github.com/robertdebock/ansible-role-postfix/blob/master/LICENSE).\n\n## [Author Information](#author-information)\n\n[robertdebock](https://robertdebock.nl/)\n\nPlease consider [sponsoring me](https://github.com/sponsors/robertdebock).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertdebock%2Fansible-role-postfix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobertdebock%2Fansible-role-postfix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobertdebock%2Fansible-role-postfix/lists"}