scripts/gestion/config/mails/upload.py
Vincent Le Gallic 20fdae6ac2 utils/sendmail, deconnexion.py et config/mails/upload.py : envoie de mail avec une classe pour instancier les messages
Idéalement, il faudrait passer tous les mails de la conf sous ce format et les instancier tous comme ça.
Ça permet d'encoder proprement les headers avec éventuellement des variables dedans.
2013-05-08 01:23:10 +02:00

125 lines
4.6 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from email.header import Header
import sys
sys.path.append("/usr/scripts")
from utils.sendmail import Message
""" Templates des mails envoyés en cas d'upload. """
#: Envoyé à l'adhérent en cas de dépassement de la limite soft
message_soft = u"""From: %%(from)s
To: %%(to)s
Subject: %(subject)s
Content-Type: text/plain; charset="utf-8"
Bonjour %%(proprio)s,
Nous t'informons que ta (tes) machine(s) envoie(nt) une quantité
importante de données vers l'extérieur (%%(upload)s Mo en 24 heures).
*Ce message t'est envoyé à titre informatif, il ne te sanctionne pas.*
Il signifie que tu as envoyé plus de 300 Mo au cours des dernières 24
heures. Cela peut venir du fait que, *par exemple*, tu essaies
d'envoyer des fichiers de grosse taille à l'extérieur de la zone
crans, ou encore que tu as fait une utilisation importante de
logiciels envoyant une très grande quantité de petites données
(vidéo-conférence par exemple). Il peut y avoir d'autres raisons.
Si cela continuait, et que tu dépassais la limite acceptable des 3789
Mo sur 24 heures, ton débit serais automatiquement fortement limité pour
une durée de 24 heures. Il t'appartient donc de surveiller cela de
plus près et de faire en sorte que tes machines n'uploadent pas de
manière excessive à l'avenir.
Pour plus d'informations, tu peux consulter la page:
http://wiki.crans.org/VieCrans/DéconnexionPourUpload
Si tu as des questions, contacte disconnect@crans.org
N.B. : L'upload consiste en l'envoi de données vers des machines n'étant
pas branchées sur le CRANS.
--\u0020
Disconnect team""" % {'subject': Header('[Cr@ns] Attention !', 'utf-8')}
#: Envoyé à l'adhérent en cas de dépassement de la limite hard
message_hard = u"""From: %%(from)s
To: %%(to)s
Subject: %(subject)s
Content-Type: text/plain; charset="utf-8"
Bonjour %%(proprio)s,
Ton débit à été temporairement limité en raison de l'envoi trop
important de données vers l'extérieur (%%(upload)s Mo en 24h).
Si cela devait se renouveler trop souvent, tu serais déconnecté
complètement pour une durée plus importante.
Il t'appartient donc de surveiller cela de plus près et de faire en sorte que
ta machine n'uploade plus de manière excessive à l'avenir.
Pour plus d'informations, tu peux consulter la page :
http://wiki.crans.org/VieCrans/DéconnexionPourUpload
Si tu as des questions, contacte disconnect@crans.org
N.B. : L'upload consiste en l'envoi de données vers des machines n'étant
pas branchées sur le CRANS.
--\u0020
Disconnect team""" % {'subject': Header('[Cr@ns] Limitation temporaire de ton débit montant.', 'utf-8')}
#: Envoyé à la ML disconnect@ en cas de dépassement de la limite soft (désactivé)
message_disconnect_soft = u"""From: %(from)s
To: %(to)s
Subject: %(proprio)s uploade
Content-Type: text/plain; charset="utf-8"
%(proprio)s uploade actuellement %(upload)s Mo.
--\u0020
Message créé par deconnexion.py"""
class Message_disconnect_hard(Message):
"""Envoyé à la ML disconnect@ en cas de dépassement de la limite hard"""
template = u"""%(proprio)s (%(id)s) a été limité en débit montant du fait d'un
upload excessif (%(upload)s Mo).
Ses machines ont été aperçues pour la dernière fois à ces endroits :
%(mdc)s
La chambre de l'adhérent est %(chambre)s.
--\u0020
Message créé par deconnexion.py
""" + (" __1__"+10*" "+3*"%"+","+7*"%"+"\n \_._/"+11*" "+",'%% \\-*"+7*"%"+"\n ( ^ )"+5*" "+";"+5*"%"+"*% _%%%%\"\n"+2*" "+"`='|\."+4*" "+",%%%"+7*" "+"\(_.*%%%%.\n"+4*" "+"/ |"+4*" "+"% *%%, ,"+4*"%"+"*("+4*" "+"'\n (/ | %^"+5*" "+",*%%% )\|,%%*%,_\n |__, |"+7*" "+"*%"+4*" "+"\/ #).-\"*%%*\n | |"+11*" "+"_.) ,/ *%,\n | | "+9*"_"+"/)#("+12*"_"+"\n /___| |"+25*"_"+"|\n ===").replace("%", "%%")
def __init__(self, emetteur, destinataires, proprio, id, upload, mdc, chambre):
self.proprio = proprio
self.id, self.upload, self.mdc, self.chambre = id, upload, mdc, chambre
self.objet = u"%s a été bridé" % (proprio)
self.corps = self.template
super(Message_disconnect_hard, self).__init__(emetteur, destinataires, self.objet, self.corps)
#: Envoyé à la ML disconnect@ en cas de dépassement de la limite hard plusieurs fois
message_disconnect_multi = u"""From: %(from)s
To: %(to)s
Subject: %(proprio)s a =?utf-8?q?=C3=A9t=C3=A9_brid=C3=A9?=
%(nbdeco)d fois pour upload en un mois !
Content-Type: text/plain; charset="utf-8"
L'adhérent %(proprio)s a été bridé %(nbdeco)d fois pour upload en un mois !
Le PS a été généré et se trouve sur zamok :
%(ps)s
--\u0020
Message créé par deconnexion.py"""