1
0
Fork 0

feat(yunohost): add SMTP relay support

This commit is contained in:
Arthur BOUDREAULT 2021-10-26 13:52:28 +00:00 committed by Christophe Chaudier
parent 0717812d22
commit 0e59763a0e
5 changed files with 76 additions and 1 deletions

View file

@ -31,7 +31,7 @@ ynh_install_script_url: https://install.yunohost.org
ynh_admin_password: MYINSECUREPWD_PLZ_OVERRIDE_THIS ynh_admin_password: MYINSECUREPWD_PLZ_OVERRIDE_THIS
``` ```
-`ynh_install_script_url` est le script d'installation des packages Yunohost, par défaut c'est le script officiel. Yunohost ne s'installe que sur Debian 10. - `ynh_install_script_url` est le script d'installation des packages Yunohost, par défaut c'est le script officiel. Yunohost ne s'installe que sur Debian 10.
- `ynh_admin_password` est le mot de passe permettant d'accéder à linterface dadministration du serveur. - `ynh_admin_password` est le mot de passe permettant d'accéder à linterface dadministration du serveur.
### Gestion des domaines ### Gestion des domaines
@ -49,6 +49,19 @@ ynh_ignore_dyndns_server: False
- `ynh_extra_domains` sont des sous-domaines optionnels. Ils permettent d'installer une application par sous-domaine (plus d'infos [ici](https://yunohost.org/fr/dns_subdomains)). - `ynh_extra_domains` sont des sous-domaines optionnels. Ils permettent d'installer une application par sous-domaine (plus d'infos [ici](https://yunohost.org/fr/dns_subdomains)).
- `ynh_ignore_dyndns_server` permet d'enregistrer les domaines avec un service de DNS dynamique (plus d'infos [ici](https://yunohost.org/fr/dns_dynamicip)). - `ynh_ignore_dyndns_server` permet d'enregistrer les domaines avec un service de DNS dynamique (plus d'infos [ici](https://yunohost.org/fr/dns_dynamicip)).
### Configuration d'un relais SMTP
```yml
# paramètres personnalisés du relais SMTP
ynh_smtp_relay:
host: smtp.domain.tld
port: 25
user: user1
password: Pa$$w0rd
```
Yunohost possède son propre serveur SMTP natif mais il est aussi possible de configurer Yunohost pour qu'il utilise un relais SMTP à la place.
Pour faire cela, créez la variable `ynh_smtp_relay` et mettez vos propres valeurs. Vous pouvez en apprendre plus sur les relais SMTP [ici](https://yunohost.org/fr/administrate/specific_use_cases/email_relay).
### Gestion des utilisateurs ### Gestion des utilisateurs
```yml ```yml

View file

@ -49,6 +49,20 @@ ynh_ignore_dyndns_server: False
- `ynh_extra_domains` are optional and allow you to install one app per subdomain (more info [here](https://yunohost.org/en/administrate/specific_use_cases/domains/dns_subdomains)). - `ynh_extra_domains` are optional and allow you to install one app per subdomain (more info [here](https://yunohost.org/en/administrate/specific_use_cases/domains/dns_subdomains)).
- `ynh_ignore_dyndns_server` allow to register domains with a Dynamic DNS service (more info [here](https://yunohost.org/en/dns_dynamicip)). - `ynh_ignore_dyndns_server` allow to register domains with a Dynamic DNS service (more info [here](https://yunohost.org/en/dns_dynamicip)).
### SMTP relay configuration
```yml
# SMTP custom settings
ynh_smtp_relay:
host: smtp.domain.tld
port: 25
user: user1
password: Pa$$w0rd
```
There is a built-in SMTP server on Yunohost but you can also set up Yunohost to use a SMTP relay instead.
In order to do so, create the `ynh_smtp_relay` variable and provide your own values. You can learn more about SMTP relay [here](https://yunohost.org/en/administrate/specific_use_cases/email_relay).
### User management ### User management
```yml ```yml

View file

@ -36,6 +36,19 @@ ynh_users: null
# lastname: Doe # lastname: Doe
# mail_domain: domain.tld # mail_domain: domain.tld
# Do not touch this variable
# Just to have dict default value
ynh_smtp_relay:
value: null
# SMTP custom settings (Only override if you need a SMTP relay)
# Example:
# ynh_smtp_relay:
# host: smtp.domain.tld
# port: "25"
# user: user1
# password: Pa$$w0rd
# The list of Yunohost apps. # The list of Yunohost apps.
ynh_apps: null ynh_apps: null
# - label: Tiny Tiny RSS # - label: Tiny Tiny RSS

View file

@ -60,6 +60,11 @@
ansible.builtin.command: yunohost domain cert-install ansible.builtin.command: yunohost domain cert-install
changed_when: False changed_when: False
- name: Configure SMTP relay
ansible.builtin.include_tasks: smtp_relay.yml
loop: "{{ ynh_smtp_relay | dict2items }}"
when: item.value
- name: Add Yunohost users - name: Add Yunohost users
ansible.builtin.include_tasks: users.yml ansible.builtin.include_tasks: users.yml
when: ynh_users when: ynh_users

30
tasks/smtp_relay.yml Normal file
View file

@ -0,0 +1,30 @@
---
#-----------------------------------------------------------------------------#
# ansible-yunohost allows to deploy Yunohost using Ansible #
# Copyright 2021-2021 Lydra https://www.lydra.fr/ #
# #
# this program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation, either version 3 of the License, or #
# (at your option) any later version. #
# #
# this program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
# #
#-----------------------------------------------------------------------------#
- name: Get current SMTP settings
ansible.builtin.command:
"yunohost settings get smtp.relay.{{ item.key }}"
register: _ynh_smtp_current_values
changed_when: False
- name: Set new SMTP settings
ansible.builtin.command:
"yunohost settings set smtp.relay.{{ item.key }} -v {{ item.value }}"
when: _ynh_smtp_current_values.stdout != item.value