re2o-mail-server/main.py

47 lines
1.2 KiB
Python
Raw Normal View History

2018-06-27 19:00:53 +02:00
#!/usr/bin/env python3
2018-05-24 15:27:42 +02:00
from configparser import ConfigParser
2018-05-26 23:04:14 +02:00
import socket
2018-05-24 15:27:42 +02:00
from re2oapi import Re2oAPIClient
from jinja2 import Environment, FileSystemLoader
import requests
import base64
import json
2018-07-19 12:53:35 +02:00
from subprocess import call
import os.path
2018-05-24 15:27:42 +02:00
config = ConfigParser()
config.read('config.ini')
2018-05-26 23:04:14 +02:00
api_hostname = config.get('Re2o', 'hostname')
api_password = config.get('Re2o', 'password')
api_username = config.get('Re2o', 'username')
api_client = Re2oAPIClient(api_hostname, api_username, api_password)
client_hostname = socket.gethostname().split('.', 1)[0]
all_users = api_client.list("mail/alias")
# Création de l'environnement Jinja
env = Environment(loader=FileSystemLoader('.'))
template = env.get_template('templates/list')
aliases_rendered = template.render(data=all_users)
fichier = open('generated/aliases','w')
if os.path.isfile('aliases_local'): # if a local aliases file exist, add it's content at the beginning
local = open('aliases_local','r')
for line in local.readlines():
fichier.write(line)
local.close()
fichier.write(aliases_rendered)
fichier.close()
2018-07-19 12:53:35 +02:00
call(["newalias", "generated/aliases"]) # Update the aliases config file
call(["postfix", "reload"]) # force the reloading now