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