41 lines
1.9 KiB
Python
41 lines
1.9 KiB
Python
import subprocess
|
|
from email_validator import validate_email, EmailNotValidError
|
|
|
|
from .config import getDockersConfig, getSecretConfig
|
|
|
|
sympa_user = getSecretConfig("sympaServ", "SOAP_USER")
|
|
sympa_pass = getSecretConfig("sympaServ", "SOAP_PASSWORD")
|
|
sympa_listmaster = getSecretConfig("sympaServ", "ADMINEMAIL")
|
|
sympa_url = f"https://{getDockersConfig('sympaHost')}.{getDockersConfig('domain')}"
|
|
sympa_soap = "docker exec -i sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl"
|
|
sympa_domain = getDockersConfig('domain_sympa')
|
|
sympa_liste_info = "infos"
|
|
|
|
|
|
# docker exec -i sympaServ /usr/lib/sympa/bin/sympa_soap_client.pl --soap_url=${httpProto}://${URL_LISTE}/sympasoap --trusted_application=${sympa_SOAP_USER} --trusted_application_password=${sympa_SOAP_PASSWORD} --proxy_vars=\"USER_EMAIL=${LISTMASTER}\" --service=add --service_parameters=\"${NL_LIST},${EMAIL_SOUHAITE}\"" | tee -a "${CMD_SYMPA}"
|
|
|
|
class Sympa:
|
|
|
|
def _execute_sympa_command(self, email, liste, service):
|
|
if validate_email(email) and validate_email(liste):
|
|
cmd = f'{sympa_soap} --soap_url={sympa_url}/sympasoap --trusted_application={sympa_user} --trusted_application_password={sympa_pass} --proxy_vars=USER_EMAIL={sympa_listmaster} --service={service} --service_parameters="{liste},{email}" && echo $?'
|
|
output = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
|
|
return output.decode()
|
|
|
|
def add_email_to_list(self, email, liste=sympa_liste_info):
|
|
"""
|
|
Ajouter un email dans une liste sympa
|
|
"""
|
|
output = self._execute_sympa_command(email, f"{liste}@{sympa_domain}", 'add')
|
|
return output
|
|
|
|
def delete_email_from_list(self, email, liste=sympa_liste_info):
|
|
"""
|
|
Supprimer un email dans une liste sympa
|
|
"""
|
|
output = self._execute_sympa_command(email, f"{liste}@{sympa_domain}", 'del')
|
|
return output
|
|
|
|
|
|
|