Implemented msmtp for wordpress

This commit is contained in:
2025-04-03 14:05:00 +02:00
parent fa10fe558d
commit 170636d098
16 changed files with 200 additions and 42 deletions

29
roles/msmtp/README.md Normal file
View File

@@ -0,0 +1,29 @@
# msmtp 📧
## Description
This Ansible role installs and configures **msmtp** and **msmtp-mta** on Arch Linux systems. It provides a lightweight SMTP client that serves as a drop-in replacement for the traditional sendmail command, enabling reliable email delivery via an external SMTP server. For more background on SMTP, see [SMTP on Wikipedia](https://en.wikipedia.org/wiki/SMTP).
## Overview
Tailored for Arch Linux, this role uses the `pacman` package manager to install **msmtp** and **msmtp-mta**. It then deploys a pre-configured msmtprc file via a Jinja2 template that defines settings for authentication, TLS, and the target SMTP server. This role is ideal for environments where automated email notifications or direct email sending are required.
## 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 and msmtp-mta:** Uses `pacman` to install the required packages.
- **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 CyMaIS environment for automated notifications.
## Credits 📝
Developed and maintained by **Kevin Veen-Birkenbach**.
Learn more at [www.veen.world](https://www.veen.world)
Part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais)
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)

24
roles/msmtp/meta/main.yml Normal file
View File

@@ -0,0 +1,24 @@
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs and configures msmtp, a lightweight SMTP client and sendmail replacement."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- rolling
galaxy_tags:
- email
- msmtp
- smtp
- automation
- archlinux
repository: "https://s.veen.world/cymais"
issue_tracker_url: "https://s.veen.world/cymaisissues"
documentation: "https://s.veen.world/cymais"
dependencies: []

View File

@@ -0,0 +1,19 @@
- name: install msmtp msmtp-mta
community.general.pacman:
name:
- msmtp
- msmtp-mta
state: present
when: run_once_msmtp is not defined
- name: configure msmtprc.conf.j2
template:
src: "msmtprc.conf.j2"
dest: "/root/.msmtprc"
mode: 600
when: run_once_msmtp is not defined
- name: run the msmtp tasks once
set_fact:
run_once_msmtp: true
when: run_once_msmtp is not defined

View File

@@ -0,0 +1,20 @@
# Set default values for all following accounts.
defaults
auth on
logfile ~/.msmtp.log
tls_starttls {{ 'on' if system_email.start_tls else 'off' }}
{% if system_email.tls %}
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
{% else %}
tls off
{% endif %}
account system_email
host {{system_email.host}}
port {{system_email.port}}
from {{system_email.from}}
user {{system_email.username}}
password {{system_email.password}}
account default : system_email