{"id":46274309,"url":"https://github.com/rolehippie/smtp","last_synced_at":"2026-03-04T04:02:25.090Z","repository":{"id":43183799,"uuid":"334069449","full_name":"rolehippie/smtp","owner":"rolehippie","description":"Ansible role to install Postfix as pure SMTP server","archived":false,"fork":false,"pushed_at":"2026-03-02T08:39:51.000Z","size":285,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-03-02T12:34:32.996Z","etag":null,"topics":["ansible","ansible-role","hacktoberfest","role"],"latest_commit_sha":null,"homepage":"","language":"Nix","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/rolehippie.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"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}},"created_at":"2021-01-29T07:27:15.000Z","updated_at":"2026-03-02T08:39:54.000Z","dependencies_parsed_at":"2023-10-02T09:29:48.866Z","dependency_job_id":"b36c72e8-7cdb-4e67-bc8a-c68eb90b691c","html_url":"https://github.com/rolehippie/smtp","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/rolehippie/smtp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rolehippie%2Fsmtp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rolehippie%2Fsmtp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rolehippie%2Fsmtp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rolehippie%2Fsmtp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rolehippie","download_url":"https://codeload.github.com/rolehippie/smtp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rolehippie%2Fsmtp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30071670,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T03:25:38.285Z","status":"ssl_error","status_checked_at":"2026-03-04T03:25:05.086Z","response_time":59,"last_error":"SSL_read: 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","ansible-role","hacktoberfest","role"],"created_at":"2026-03-04T04:02:22.136Z","updated_at":"2026-03-04T04:02:25.082Z","avatar_url":"https://github.com/rolehippie.png","language":"Nix","funding_links":[],"categories":[],"sub_categories":[],"readme":"# smtp\n\n[![Source Code](https://img.shields.io/badge/github-source%20code-blue?logo=github\u0026logoColor=white)](https://github.com/rolehippie/smtp)\n[![General Workflow](https://github.com/rolehippie/smtp/actions/workflows/general.yml/badge.svg)](https://github.com/rolehippie/smtp/actions/workflows/general.yml)\n[![Readme Workflow](https://github.com/rolehippie/smtp/actions/workflows/docs.yml/badge.svg)](https://github.com/rolehippie/smtp/actions/workflows/docs.yml)\n[![Galaxy Workflow](https://github.com/rolehippie/smtp/actions/workflows/galaxy.yml/badge.svg)](https://github.com/rolehippie/smtp/actions/workflows/galaxy.yml)\n[![License: Apache-2.0](https://img.shields.io/github/license/rolehippie/smtp)](https://github.com/rolehippie/smtp/blob/master/LICENSE)\n[![Ansible Role](https://img.shields.io/badge/role-rolehippie.smtp-blue)](https://galaxy.ansible.com/rolehippie/smtp)\n\nAnsible role to install Postfix as pure SMTP server.\n\n## Sponsor\n\nBuilding and improving this Ansible role have been sponsored by my current and previous employers like **[Cloudpunks GmbH](https://cloudpunks.de)** and **[Proact Deutschland GmbH](https://www.proact.eu)**.\n\n## Table of contents\n\n- [Requirements](#requirements)\n- [Default Variables](#default-variables)\n  - [smtp_compatibility_level](#smtp_compatibility_level)\n  - [smtp_default_aliases](#smtp_default_aliases)\n  - [smtp_default_destinations](#smtp_default_destinations)\n  - [smtp_default_master](#smtp_default_master)\n  - [smtp_default_networks](#smtp_default_networks)\n  - [smtp_default_relayhosts](#smtp_default_relayhosts)\n  - [smtp_default_services](#smtp_default_services)\n  - [smtp_dynamic_maps](#smtp_dynamic_maps)\n  - [smtp_extra_aliases](#smtp_extra_aliases)\n  - [smtp_extra_destinations](#smtp_extra_destinations)\n  - [smtp_extra_master](#smtp_extra_master)\n  - [smtp_extra_networks](#smtp_extra_networks)\n  - [smtp_extra_relayhosts](#smtp_extra_relayhosts)\n  - [smtp_extra_services](#smtp_extra_services)\n  - [smtp_hostname](#smtp_hostname)\n  - [smtp_inet_interfaces](#smtp_inet_interfaces)\n  - [smtp_inet_protocols](#smtp_inet_protocols)\n  - [smtp_match_destinations](#smtp_match_destinations)\n  - [smtp_myorigin](#smtp_myorigin)\n  - [smtp_packages](#smtp_packages)\n  - [smtp_relay_restrictions](#smtp_relay_restrictions)\n  - [smtp_tls_ca_path](#smtp_tls_ca_path)\n  - [smtp_tls_cert_file](#smtp_tls_cert_file)\n  - [smtp_tls_key_file](#smtp_tls_key_file)\n  - [smtp_tls_security_level](#smtp_tls_security_level)\n- [Discovered Tags](#discovered-tags)\n- [Dependencies](#dependencies)\n- [License](#license)\n- [Author](#author)\n\n---\n\n## Requirements\n\n- Minimum Ansible version: `2.10`\n\n## Default Variables\n\n### smtp_compatibility_level\n\nCompatibility level, should be set to 3.6 for new installations. For more details check the [documentation](https://www.postfix.org/postconf.5.html#compatibility_level)\n\n#### Default value\n\n```YAML\nsmtp_compatibility_level: 2\n```\n\n### smtp_default_aliases\n\n#### Default value\n\n```YAML\nsmtp_default_aliases:\n  - alias: mailer-daemon\n    recipient: postmaster\n  - alias: postmaster\n    recipient: root\n  - alias: nobody\n    recipient: root\n  - alias: hostmaster\n    recipient: root\n  - alias: usenet\n    recipient: root\n  - alias: news\n    recipient: root\n  - alias: webmaster\n    recipient: root\n  - alias: www\n    recipient: root\n  - alias: ftp\n    recipient: root\n  - alias: abuse\n    recipient: root\n  - alias: noc\n    recipient: root\n  - alias: security\n    recipient: root\n```\n\n#### Example usage\n\n```YAML\nsmtp_default_aliases:\n  - alias: root\n    recipient: user1@example.com\n  - alias: postmaster\n    recipients:\n      - user1@example.com\n      - user2@example.com\n      - user3@example.com\n```\n\n### smtp_default_destinations\n\nList of default postfix destinations\n\n#### Default value\n\n```YAML\nsmtp_default_destinations:\n  - $myhostname\n  - localhost.$mydomain\n  - localhost\n  - pcre:/etc/postfix/destinations.cf\n```\n\n### smtp_default_master\n\nList of default postfix services\n\n### smtp_default_networks\n\nList of default postfix networks\n\n#### Default value\n\n```YAML\nsmtp_default_networks:\n  - 127.0.0.0/8\n```\n\n### smtp_default_relayhosts\n\nList of default postfix relayhosts\n\n#### Default value\n\n```YAML\nsmtp_default_relayhosts: []\n```\n\n### smtp_default_services\n\n#### Default value\n\n```YAML\nsmtp_default_services:\n  - service: smtp\n    weight: 5\n    type: inet\n    private: n\n    chroot: y\n    command: smtpd\n  - service: pickup\n    weight: 10\n    type: unix\n    private: n\n    chroot: y\n    wakeup: 60\n    maxproc: 1\n    command: pickup\n  - service: cleanup\n    weight: 15\n    type: unix\n    private: n\n    chroot: y\n    maxproc: 0\n    command: cleanup\n  - service: qmgr\n    weight: 20\n    type: unix\n    private: n\n    chroot: n\n    wakeup: 300\n    maxproc: 1\n    command: qmgr\n  - service: tlsmgr\n    weight: 25\n    type: unix\n    chroot: y\n    wakeup: 1000?\n    maxproc: 1\n    command: tlsmgr\n  - service: rewrite\n    weight: 25\n    type: unix\n    chroot: y\n    command: trivial-rewrite\n  - service: bounce\n    weight: 30\n    type: unix\n    chroot: y\n    maxproc: 0\n    command: bounce\n  - service: defer\n    weight: 35\n    type: unix\n    chroot: y\n    maxproc: 0\n    command: bounce\n  - service: trace\n    weight: 40\n    type: unix\n    chroot: y\n    maxproc: 0\n    command: bounce\n  - service: verify\n    weight: 45\n    type: unix\n    chroot: y\n    maxproc: 1\n    command: verify\n  - service: flush\n    weight: 50\n    type: unix\n    private: n\n    chroot: y\n    wakeup: 1000?\n    maxproc: 0\n    command: flush\n  - service: proxymap\n    weight: 55\n    type: unix\n    chroot: n\n    command: proxymap\n  - service: proxywrite\n    weight: 60\n    type: unix\n    chroot: n\n    maxproc: 1\n    command: proxymap\n  - service: smtp\n    weight: 65\n    type: unix\n    chroot: y\n    command: smtp\n  - service: relay\n    weight: 70\n    type: unix\n    chroot: y\n    command: smtp\n    args:\n      - -o syslog_name=postfix/$service_name\n  - service: showq\n    weight: 75\n    type: unix\n    private: n\n    chroot: y\n    command: showq\n  - service: error\n    weight: 80\n    type: unix\n    chroot: y\n    command: error\n  - service: retry\n    weight: 85\n    type: unix\n    chroot: y\n    command: error\n  - service: discard\n    weight: 90\n    type: unix\n    chroot: y\n    command: discard\n  - service: local\n    weight: 95\n    type: unix\n    unpriv: n\n    chroot: n\n    command: local\n  - service: virtual\n    weight: 100\n    type: unix\n    unpriv: n\n    chroot: n\n    command: virtual\n  - service: lmtp\n    weight: 105\n    type: unix\n    chroot: y\n    command: lmtp\n  - service: anvil\n    weight: 110\n    type: unix\n    chroot: y\n    maxproc: 1\n    command: anvil\n  - service: scache\n    weight: 115\n    type: unix\n    chroot: y\n    maxproc: 1\n    command: scache\n  - service: postlog\n    weight: 120\n    type: unix-dgram\n    private: n\n    chroot: n\n    maxproc: 1\n    command: postlogd\n    enabled: \"{{ true if ansible_distribution_version is version('20.04', '\u003e=') else\n      false }}\"\n```\n\n### smtp_dynamic_maps\n\nList of dynamic map definitions\n\n#### Default value\n\n```YAML\nsmtp_dynamic_maps: []\n```\n\n#### Example usage\n\n```YAML\nsmtp_dynamic_maps:\n  - type: sqlite\n    soname: smtp-sqlite.so.1.0.1\n    dict: dict_sqlite_open\n  - type: example\n    soname: smtp-example.so.1.0.0\n    dict: dict_example_open\n    mkmap: example\n```\n\n### smtp_extra_aliases\n\n#### Default value\n\n```YAML\nsmtp_extra_aliases: []\n```\n\n#### Example usage\n\n```YAML\nsmtp_extra_aliases:\n  - alias: root\n    recipient: user1@example.com\n  - alias: postmaster\n    recipients:\n      - user1@example.com\n      - user2@example.com\n      - user3@example.com\n```\n\n### smtp_extra_destinations\n\nList of extra postfix destinations\n\n#### Default value\n\n```YAML\nsmtp_extra_destinations: []\n```\n\n### smtp_extra_master\n\nList of extra postfix services\n\n### smtp_extra_networks\n\nList of extra postfix networks\n\n#### Default value\n\n```YAML\nsmtp_extra_networks: []\n```\n\n### smtp_extra_relayhosts\n\nList of extra mail aliases\n\n#### Default value\n\n```YAML\nsmtp_extra_relayhosts: []\n```\n\n### smtp_extra_services\n\n#### Default value\n\n```YAML\nsmtp_extra_services: []\n```\n\n### smtp_hostname\n\nHostname written to postfix config\n\n#### Default value\n\n```YAML\nsmtp_hostname: '{{ ansible_fqdn }}'\n```\n\n### smtp_inet_interfaces\n\nList of interfaces to bind, also supports `all` or `loopback-only`\n\n#### Default value\n\n```YAML\nsmtp_inet_interfaces:\n  - loopback-only\n```\n\n#### Example usage\n\n```YAML\nsmtp_inet_interfaces:\n  - loopback-only\n  - 192.168.1.2\n  - 127.0.0.1\n```\n\n### smtp_inet_protocols\n\nList of supported IP protocol versions, also supports `all`\n\n#### Default value\n\n```YAML\nsmtp_inet_protocols:\n  - all\n```\n\n#### Example usage\n\n```YAML\nsmtp_inet_protocols:\n  - ipv4\n  - ipv6\n```\n\n### smtp_match_destinations\n\nList of regexp matching destinations\n\n#### Default value\n\n```YAML\nsmtp_match_destinations: []\n```\n\n#### Example usage\n\n```YAML\nsmtp_match_destinations:\n  - /^.*\\.example\\.com$/\n```\n\n### smtp_myorigin\n\nOrigin used by postfix\n\n#### Default value\n\n```YAML\nsmtp_myorigin: /etc/mailname\n```\n\n### smtp_packages\n\nList of packages to install with postfix\n\n#### Default value\n\n```YAML\nsmtp_packages:\n  - postfix\n  - postfix-pcre\n  - mailutils\n  - bsd-mailx\n```\n\n### smtp_relay_restrictions\n\nList of relay restrictions\n\n#### Default value\n\n```YAML\nsmtp_relay_restrictions:\n  - permit_mynetworks\n  - permit_sasl_authenticated\n  - defer_unauth_destination\n```\n\n### smtp_tls_ca_path\n\nPath to directory containing CAs\n\n#### Default value\n\n```YAML\nsmtp_tls_ca_path: /etc/ssl/certs\n```\n\n### smtp_tls_cert_file\n\nPath to TLS cert\n\n#### Default value\n\n```YAML\nsmtp_tls_cert_file: /etc/ssl/certs/ssl-cert-snakeoil.pem\n```\n\n### smtp_tls_key_file\n\nPath to TLS key\n\n#### Default value\n\n```YAML\nsmtp_tls_key_file: /etc/ssl/private/ssl-cert-snakeoil.key\n```\n\n### smtp_tls_security_level\n\nSecurity level for TLS\n\n#### Default value\n\n```YAML\nsmtp_tls_security_level: may\n```\n\n## Discovered Tags\n\n**_smtp_**\n\n## Dependencies\n\n- None\n\n## License\n\nApache-2.0\n\n## Author\n\n[Thomas Boerger](https://github.com/tboerger)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frolehippie%2Fsmtp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frolehippie%2Fsmtp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frolehippie%2Fsmtp/lists"}