script de gnration des feuilles d'avertissement pour mail invalide
darcs-hash:20041022211627-72cb0-21513bcb114e287fe550d8a2b17643415cecb83a.gz
This commit is contained in:
parent
15be9cc6fb
commit
0e616da811
4 changed files with 4226 additions and 0 deletions
3940
admin/logo.eps
Normal file
3940
admin/logo.eps
Normal file
File diff suppressed because it is too large
Load diff
141
admin/mail_invalide.py
Executable file
141
admin/mail_invalide.py
Executable file
|
@ -0,0 +1,141 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: iso-8859-15 -*-
|
||||||
|
|
||||||
|
import sys,os,string,time,locale
|
||||||
|
locale.setlocale(locale.LC_ALL,'')
|
||||||
|
|
||||||
|
sys.path.append('/usr/scripts/gestion')
|
||||||
|
from ldap_crans import crans_ldap
|
||||||
|
|
||||||
|
os.chdir("/usr/scripts/admin/")
|
||||||
|
|
||||||
|
headers = "mail_invalide_debut.tex"
|
||||||
|
texsrc = "mail_invalide_texte.tex"
|
||||||
|
pdf = time.strftime("mail_invalide-%d-%m-%Y.pdf",time.localtime(time.time()))
|
||||||
|
|
||||||
|
# Fichiers temporaires à supprimer à la fin
|
||||||
|
mailtex = "mailtmp.tex"
|
||||||
|
barcode = "barcode.eps"
|
||||||
|
#os.system("touch %s" % pdf.replace('.pdf','.ps'))
|
||||||
|
|
||||||
|
# Détection d'un manquement d'argument
|
||||||
|
if len(sys.argv) == 1 :
|
||||||
|
sys.exit("Erreur: aucune adresse mail fournie")
|
||||||
|
|
||||||
|
# On prend la liste des adresses mails données en argument
|
||||||
|
adresses = sys.argv
|
||||||
|
# On vire pour celà l'appel au script
|
||||||
|
adresses.pop(0)
|
||||||
|
|
||||||
|
if len(adresses) == 1 :
|
||||||
|
text = "Bonjour\n\n \
|
||||||
|
Voici la fiche d'avertissement à remettre à l'adhérent concerné pour\n \
|
||||||
|
l'informer que l'adresse mail qu'il a fourni n'est pas valide.\n\n \
|
||||||
|
Il faut donc imprimer la feuille et la mettre dans sa boîte aux\n \
|
||||||
|
lettres.\n\n"
|
||||||
|
else :
|
||||||
|
text = "Bonjour\n\n \
|
||||||
|
Voici les fiches d'avertissement à remettre aux adhérents concernés\n \
|
||||||
|
pour les informer que l'adresse mail qu'ils ont fourni n'est pas valide.\n\n \
|
||||||
|
Il faut donc imprimer les feuilles et les mettre dans les boîtes aux\n \
|
||||||
|
lettres correspondantes.\n\n"
|
||||||
|
text += "-- \nUn script exécuté par quelqu'un ...\n\n"
|
||||||
|
text += os.popen("/usr/games/fortune",'r').read()
|
||||||
|
|
||||||
|
os.system("cp %s %s" % (headers, mailtex))
|
||||||
|
file = open(mailtex,'r+')
|
||||||
|
file.read()
|
||||||
|
|
||||||
|
chbres = []
|
||||||
|
for adresse in adresses :
|
||||||
|
os.system("barcode -n -E -b %s%s -o %s" % (adresse,time.strftime("%Y%m%d-%H%M",time.localtime()),barcode))
|
||||||
|
db = crans_ldap()
|
||||||
|
data = db.search("mail=%s" % adresse)
|
||||||
|
try :
|
||||||
|
prenom = data['adherent'][0].prenom()
|
||||||
|
nom = data['adherent'][0].nom()
|
||||||
|
chbre = data['adherent'][0].chbre()
|
||||||
|
except :
|
||||||
|
sys.exit("Erreur : l'adresse < %s > n'a pas été trouvée dans la base" % adresse)
|
||||||
|
|
||||||
|
chbres.append(chbre)
|
||||||
|
date = time.strftime("%A %d %B %Y",time.localtime(time.time()+15*24*3600))
|
||||||
|
|
||||||
|
if adresse == adresses[0] :
|
||||||
|
file.write("\\newcommand{\prenom}{%s}\n" % prenom)
|
||||||
|
file.write("\\newcommand{\\nom}{%s}\n" % nom)
|
||||||
|
file.write("\\newcommand{\chambre}{%s}\n" % chbre)
|
||||||
|
file.write("\\newcommand{\email}{\url{%s}}\n" % adresse)
|
||||||
|
file.write("\\newcommand{\deconnexion}{%s}\n" % date)
|
||||||
|
|
||||||
|
else :
|
||||||
|
file.write("\\renewcommand{\prenom}{%s}\n" % prenom)
|
||||||
|
file.write("\\renewcommand{\\nom}{%s}\n" % nom)
|
||||||
|
file.write("\\renewcommand{\chambre}{%s}\n" % chbre)
|
||||||
|
file.write("\\renewcommand{\email}{\url{%s}}\n" % adresse)
|
||||||
|
file.write("\\renewcommand{\deconnexion}{%s}\n" % date)
|
||||||
|
|
||||||
|
tex_src = open(texsrc, 'r')
|
||||||
|
file.write(tex_src.read())
|
||||||
|
tex_src.close()
|
||||||
|
|
||||||
|
if adresse != adresses[len(adresses)-1] :
|
||||||
|
file.write('\\newpage')
|
||||||
|
else :
|
||||||
|
file.write('\end{document}')
|
||||||
|
|
||||||
|
file.close()
|
||||||
|
#os.system("latex %s" % mailtex)
|
||||||
|
os.system("latex %s 1> /dev/null" % mailtex)
|
||||||
|
os.system("dvips %s 2> /dev/null" % mailtex.replace('.tex','.dvi'))
|
||||||
|
os.system("ps2pdf %s %s" % (mailtex.replace('.tex','.ps'),pdf))
|
||||||
|
|
||||||
|
|
||||||
|
# Génération du mail avec la pièce jointe
|
||||||
|
import smtplib
|
||||||
|
|
||||||
|
# Here are the email pacakge modules we'll need
|
||||||
|
from email.MIMEBase import MIMEBase
|
||||||
|
from email.MIMEText import MIMEText
|
||||||
|
from email.MIMEMultipart import MIMEMultipart
|
||||||
|
from email.Encoders import encode_base64
|
||||||
|
|
||||||
|
msg = MIMEMultipart()
|
||||||
|
msg['Subject'] = "Fiche(s) d'avertissement de mail invalide - %s" % time.strftime("%d/%m/%Y",time.localtime(time.time()))
|
||||||
|
msg['From'] = "Bureau <bureau@crans.org>"
|
||||||
|
msg['To'] = "bureau@crans.org"
|
||||||
|
msg['Cc'] = "Disconnect Team <disconnect@crans.org>"
|
||||||
|
# msg.preamble = text
|
||||||
|
# Guarantees the message ends in a newline
|
||||||
|
# msg.epilogue = ''
|
||||||
|
|
||||||
|
fp = open(pdf, 'rb')
|
||||||
|
img = MIMEBase('application','pdf')
|
||||||
|
img.set_payload(fp.read())
|
||||||
|
fp.close()
|
||||||
|
encode_base64(img) # Ils auraient pu soigner...
|
||||||
|
img.add_header('Content-Disposition', 'attachment', filename=pdf)
|
||||||
|
msg.attach(img)
|
||||||
|
|
||||||
|
text = MIMEText(text, 'plain', 'iso-8859-1')
|
||||||
|
msg.attach(text)
|
||||||
|
|
||||||
|
while (1 == 1):
|
||||||
|
print "Mail formaté, prêt à l'envoi."
|
||||||
|
print " [Envoyer, Abandonner]"
|
||||||
|
r = sys.stdin.readline().strip()
|
||||||
|
if (r == "e" or r == "E"):
|
||||||
|
# Send the email via our own SMTP server.
|
||||||
|
s = smtplib.SMTP()
|
||||||
|
s.connect()
|
||||||
|
s.sendmail('bureau@crans.org',
|
||||||
|
('bureau@crans.org','disconnect@crans.org'),
|
||||||
|
msg.as_string())
|
||||||
|
s.close()
|
||||||
|
print "Mail envoyé !"
|
||||||
|
break
|
||||||
|
if (r == "a" or r == "A"):
|
||||||
|
print "Abandon"
|
||||||
|
break
|
||||||
|
|
||||||
|
os.system("rm -f ./mail$$$tmp.*")
|
49
admin/mail_invalide_debut.tex
Normal file
49
admin/mail_invalide_debut.tex
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
\documentclass[11pt,a4paper,oneside]{article}
|
||||||
|
\usepackage{aeguill}
|
||||||
|
\usepackage{fancyhdr}
|
||||||
|
\usepackage{url}
|
||||||
|
\usepackage{vmargin}
|
||||||
|
\usepackage{ifthen}
|
||||||
|
\usepackage{pstricks}
|
||||||
|
\usepackage{multicol}
|
||||||
|
\usepackage{alltt}
|
||||||
|
\usepackage[dvips]{eso-pic,graphicx}
|
||||||
|
\usepackage[dvips]{color}
|
||||||
|
\usepackage[latin1]{inputenc}
|
||||||
|
\usepackage[T1]{fontenc}
|
||||||
|
\usepackage[french]{babel}
|
||||||
|
|
||||||
|
\newboolean{mailcrans}
|
||||||
|
|
||||||
|
\setpapersize{A4}
|
||||||
|
\setmarginsrb{18mm}{14mm}{18mm}{14mm}{\headheight}{12pt}{\footheight}{20pt}
|
||||||
|
|
||||||
|
\pagestyle{fancy}
|
||||||
|
\renewcommand{\headrulewidth}{0.8pt}
|
||||||
|
\renewcommand{\footrulewidth}{0.2pt}
|
||||||
|
\lhead{\textbf{Notification d'adresse mail invalide}}
|
||||||
|
\rhead{\textbf{CR@NS}}
|
||||||
|
\cfoot{\textbf{CR@NS}}
|
||||||
|
|
||||||
|
%Define snow flakes
|
||||||
|
\newcommand{\flakepart}{%
|
||||||
|
\pspolygon(0,0)(0.5,1)(0.5,3)(1.9,4.4)(1.2,5.1)(0.5,4.4)(0.5,5.7)(-0.5,5.7)(-0.5,4.4)(-1.2,5.1)(-1.9,4.4)(-0.5,3)(-0.5,1)}
|
||||||
|
\newcommand{\snowflake}[1]{%
|
||||||
|
\psset{unit=#1}%
|
||||||
|
\multips{0}(0,0){1}{\flakepart}%
|
||||||
|
\multips{60}(0,0){1}{\flakepart}%
|
||||||
|
\multips{120}(0,0){1}{\flakepart}%
|
||||||
|
\multips{180}(0,0){1}{\flakepart}%
|
||||||
|
\multips{240}(0,0){1}{\flakepart}%
|
||||||
|
\multips{300}(0,0){1}{\flakepart}%
|
||||||
|
}
|
||||||
|
\newcommand{\multiflake}{%
|
||||||
|
\rput(0.0 ,1.6){\snowflake{0.06}}%
|
||||||
|
\rput(0.2 ,0.0){\snowflake{0.06}}%
|
||||||
|
\rput(0.5 ,0.6){\snowflake{0.04}}%
|
||||||
|
\rput(0.1 ,1 ){\snowflake{0.04}}%
|
||||||
|
\rput(0.8 ,1.4){\snowflake{0.06}}%
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{document}
|
96
admin/mail_invalide_texte.tex
Normal file
96
admin/mail_invalide_texte.tex
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
{\setlength{\unitlength}{1in}
|
||||||
|
\begin{picture}(0,0)
|
||||||
|
\put(-0.3,-2.3){\includegraphics[width=3cm]{/usr/scripts/admin/logo.eps}}
|
||||||
|
\put(6,-3){\resizebox{1cm}{7cm}{\rotatebox{90}{\includegraphics[width=7cm]{/usr/scripts/admin/barcode.eps}}}}
|
||||||
|
\psset{linecolor=lightgray}
|
||||||
|
\put(-0.4,-0.6){\multiflake}
|
||||||
|
\end{picture}}
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\begin{minipage}[c]{0.9\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}[c]{c}
|
||||||
|
\hline
|
||||||
|
\vspace{0.1cm} \\
|
||||||
|
\Huge{\textbf{Notification d'adresse mail}} \\
|
||||||
|
\Huge{\textbf{invalide}}\\
|
||||||
|
\vspace{0.1cm} \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
|
\end{center}
|
||||||
|
\end{minipage}
|
||||||
|
\end{center}
|
||||||
|
\vspace{0.2cm}
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\begin{minipage}{0.5\textwidth}
|
||||||
|
\textbf{Nom} \dotfill{} \nom \\
|
||||||
|
\textbf{Prénom} \dotfill{} \prenom \\
|
||||||
|
\textbf{Chambre} \dotfill{} \chambre \\
|
||||||
|
\textbf{Email} \dotfill{} \email \\
|
||||||
|
\end{minipage}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\vspace{0.5cm}
|
||||||
|
|
||||||
|
\noindent\begin{center}
|
||||||
|
\noindent\fcolorbox[gray]{0}{0.85}{%
|
||||||
|
\begin{minipage}[t]{0.7\textwidth}%
|
||||||
|
\begin{center}
|
||||||
|
\large Nous t'informons que l'adresse mail que tu as fournie lors de
|
||||||
|
ton adhésion est invalide au jour d'aujourd'hui.
|
||||||
|
\end{center}
|
||||||
|
\end{minipage}}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\vspace{0.8cm}
|
||||||
|
|
||||||
|
Un mail a été envoyé à l'adresse mail que nous connaissons, à savoir :
|
||||||
|
\email\ et un message nous est revenu. Donc le message ne t'a pas été
|
||||||
|
délivré.
|
||||||
|
|
||||||
|
\vspace{0.3cm}
|
||||||
|
|
||||||
|
Dans le cadre du fonctionnement de l'association, il est nécessaire
|
||||||
|
de pouvoir joindre les adhérents par mail afin d'obtenir des réponses
|
||||||
|
rapides que peuvent se poser les membres actifs quand à ton utilisation du
|
||||||
|
réseau. D'autre part un mail est un moyen simple et rapide pour te
|
||||||
|
communiquer des informations sur l'association quand le besoin s'en fait
|
||||||
|
sentir.
|
||||||
|
|
||||||
|
\vspace{0.3cm}
|
||||||
|
|
||||||
|
Plusieurs raisons peuvent expliquer des dysfonctionnements dans la réception
|
||||||
|
du mail. On peut compter dans la liste :
|
||||||
|
\begin{itemize}
|
||||||
|
\item L'adresse email n'existe pas
|
||||||
|
\item La boîte aux lettres de destination est pleine donc le mail a été rejeté
|
||||||
|
\item Une erreur de recopie s'est produite au moment de ton inscription.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\vspace{0.3cm}
|
||||||
|
|
||||||
|
Pour corriger celà, il te faut nous indiquer une adresse mail pour laquelle
|
||||||
|
ce problème ne se posera plus.
|
||||||
|
Tu peux venir à la Kfet pour rencontrer un des nombreux membres actifs en
|
||||||
|
permanence ou bien en envoyant un mail à \emph{respbats@crans.org}.
|
||||||
|
|
||||||
|
\vspace{0.2cm}
|
||||||
|
|
||||||
|
Une fois la correction apportée, il te faut la signaler au Conseil
|
||||||
|
d'Administration par envoi d'un mail à \emph{ca@crans.org}.
|
||||||
|
|
||||||
|
\vspace{1cm}
|
||||||
|
|
||||||
|
\noindent\begin{center}
|
||||||
|
\noindent\fcolorbox[gray]{0}{0.85}{%
|
||||||
|
\begin{minipage}[t]{0.7\textwidth}%
|
||||||
|
\begin{center}
|
||||||
|
\large Dans le cas où tu ne réagirais pas avant le \deconnexion, ta connexion
|
||||||
|
au réseau sera supprimé.
|
||||||
|
\end{center}
|
||||||
|
\end{minipage}}
|
||||||
|
\end{center}
|
||||||
|
\vspace{0.3cm}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue