Sys-svc-mail-msmtp Role¶
Description: Lightweight SMTP client and sendmail replacement for delivering mail through an external SMTP server
Variables¶
author: Kevin Veen-Birkenbach
description: Lightweight SMTP client and sendmail replacement for delivering mail through an external SMTP server
license: Infinito.Nexus Community License (Non-Commercial)
company: Kevin Veen-Birkenbach https://www.veen.world
min_ansible_version: 2.9
platforms: [{‘name’: ‘ArchLinux’, ‘versions’: [‘all’]}, {‘name’: ‘Debian’, ‘versions’: [‘all’]}, {‘name’: ‘EL’, ‘versions’: [‘all’]}, {‘name’: ‘Fedora’, ‘versions’: [‘all’]}, {‘name’: ‘Ubuntu’, ‘versions’: [‘all’]}]
galaxy_tags: [‘email’, ‘smtp’, ‘msmtp’, ‘sendmail’, ‘automation’, ‘monitoring’, ‘archlinux’, ‘debian’, ‘ubuntu’, ‘fedora’, ‘centos’]
issue_tracker_url: https://s.infinito.nexus/issues
README¶
msmtp¶
Description¶
This Ansible role installs and configures msmtp (plus optional sendmail compatibility) across the default Infinito distro set: Arch Linux, Debian, Ubuntu, Fedora and CentOS. It provides a lightweight SMTP client that serves as a drop-in replacement for traditional sendmail workflows, enabling reliable email delivery via an external SMTP server. For more background on SMTP, see SMTP on Wikipedia.
Overview¶
The role installs msmtp, handles distro-specific package differences
(including EPEL bootstrap on EL-family hosts when required), and deploys
a pre-configured msmtprc file via Jinja2. For distros without a
dedicated msmtp-mta package, it configures a direct
/usr/bin/sendmail compatibility symlink to msmtp.
Cosmos¶
The diagram places msmtp in the Infinito.Nexus cosmos: the components it deploys (capabilities), the central services it consumes (dependencies), and its outward reach (federation and bridged external networks).
flowchart LR
subgraph role [sys-svc-mail-msmtp 💻]
svc_svc_mail_msmtp["svc-mail-msmtp"]
endSolid 1:1 edges are fixed relationships; dashed 0..1 edges are
conditional (enabled only in matching deployments); red 0..0 edges
are turned off in this role. Node markers show the role’s deploy modes
(💻 host, 🐳 compose, 🐝 swarm); ❌ marks a service that is explicitly
turned off, and ⚙️ an Ansible role dependency declared in
meta/main.yml.
Purpose¶
The purpose of this role is to automate the setup of a lightweight SMTP client that acts as a sendmail replacement. By configuring msmtp, the role facilitates direct email sending using your SMTP server credentials, making it a simple yet effective solution for system notifications and other email-based communications.
Features¶
Installs msmtp cross-distro: Uses distro-aware package handling for Arch, Debian, Ubuntu, Fedora, and CentOS.
Handles sendmail compatibility: Installs
msmtp-mtawhere available, otherwise provisions a compatible sendmail symlink.Customizable SMTP Configuration: Deploys a customizable msmtprc configuration file with parameters for TLS, authentication, and server details.
Drop-in sendmail Replacement: Configures msmtp to serve as the default sendmail command.
Idempotent Setup: Ensures the tasks run only once with internal flagging.
Integration Ready: Easily integrates with other system roles within the Infinito.Nexus environment for automated notifications.
Credits¶
Implemented by Kevin Veen-Birkenbach. Part of the Infinito.Nexus Project and maintained by Kevin Veen-Birkenbach. Licensed under the Infinito.Nexus Community License (Non-Commercial).