[cranspasswords] On envoit les notifs via la commande sendmail

This commit is contained in:
Pierre-Elliott Bécue 2014-04-25 11:45:46 +02:00
parent 492d9f664a
commit fe9ba118ed
2 changed files with 14 additions and 11 deletions

View file

@ -10,9 +10,9 @@ import os
import pwd import pwd
import sys import sys
import json import json
import smtplib
import datetime import datetime
import socket import socket
import subprocess
from email.mime.text import MIMEText from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart from email.mime.multipart import MIMEMultipart
@ -241,25 +241,25 @@ def backup(corps, fname, old):
back.write((u'* %s: %s\n' % (str(datetime.datetime.now()), corps)).encode("utf-8")) back.write((u'* %s: %s\n' % (str(datetime.datetime.now()), corps)).encode("utf-8"))
back.close() back.close()
# TODO monter plus haut
def notification(subject, corps, fname, old): def notification(subject, corps, fname, old):
"""Envoie par mail une notification de changement de fichier""" """Envoie par mail une notification de changement de fichier"""
conn = smtplib.SMTP('localhost')
frommail = serverconfig.CRANSP_MAIL frommail = serverconfig.CRANSP_MAIL
tomail = serverconfig.DEST_MAIL tomail = serverconfig.DEST_MAIL
msg = MIMEMultipart(_charset="utf-8") msg = MIMEMultipart(_charset="utf-8")
msg['Subject'] = subject msg['Subject'] = subject
msg['X-Mailer'] = serverconfig.cmd_name.decode() msg['X-Mailer'] = serverconfig.cmd_name.decode()
msg['From'] = serverconfig.CRANSP_MAIL msg['From'] = frommail
msg['To'] = serverconfig.DEST_MAIL msg['To'] = tomail
msg.preamble = u"%s report" % (serverconfig.cmd_name.decode(),) msg.preamble = u"%s report" % (serverconfig.cmd_name.decode(),)
info = MIMEText(corps + info = MIMEText(corps +
u"\nLa version précédente a été sauvegardée." + u"\nLa version précédente a été sauvegardée." +
u"\n\nModification effectuée sur %s." % socket.gethostname() + u"\n\nModification effectuée sur %s." % socket.gethostname() +
u"\n\n-- \nCranspasswords.py", _charset="utf-8") u"\n\n-- \nCranspasswords.py", _charset="utf-8")
msg.attach(info) msg.attach(info)
conn.sendmail(frommail, tomail, msg.as_string()) mailProcess = subprocess.Popen([serverconfig.sendmail_cmd, "-t"], stdin=subprocess.PIPE)
conn.quit() mailProcess.communicate(msg.as_string())
if __name__ == "__main__": if __name__ == "__main__":
argv = sys.argv[0:] argv = sys.argv[0:]

View file

@ -13,6 +13,9 @@ Dans le futur, pourra être remplacé par une connexion ldap.
#: Pour override le nom si vous voulez renommer la commande #: Pour override le nom si vous voulez renommer la commande
cmd_name = 'cranspasswords' cmd_name = 'cranspasswords'
#: Chemin vers la commande sendmail
sendmail_cmd = '/usr/lib/sendmail'
#: Répertoire de stockage des mots de passe #: Répertoire de stockage des mots de passe
STORE = '/var/lib/%s/db/' % (cmd_name,) STORE = '/var/lib/%s/db/' % (cmd_name,)