1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
|
#!/usr/bin/python
# -*- coding:Utf-8 -*-
import tkinter
import os
import configparser
from tkinter import messagebox
from tkinter import filedialog
#Déclaration variables
cmd = ""
#recupe configuration
try:
config = configparser.ConfigParser()
config.read('gomails.cfg')
except:
messagebox.showerror("Attention", "Arret programme fichier gomails.cfg introuvable")
sys.exit()
try:
repertoire = config['Fichier']['chemin']
adresse_serveur = config['Serveur']['SAdresse']
port = config['Serveur']['port']
Tmax = config['Serveur']['taillemax']
user = config['Emetteur']['EAdresse']
name = config['Style']['Entete']
except:
messagebox.showerror("Attention", "Arret programme fichier gomails.cfg mal formate ou introuvable")
sys.exit()
#//Définition de la fenêtre avec tous ses composants et procédure/fonctions
class simpleapp_tk(tkinter.Tk):
def __init__(self,parent):
tkinter.Tk.__init__(self,parent)
self.parent = parent
self.initialize()
def initialize(self):
self.grid()
# Mise en place des Labels
lbl_0 = tkinter.Label(self,text="Interface graphique permattant d'utiliser Gomails, pour réaliser l'envoi de lots de fichiers dans le même répertoire en limitant la taille maximum par email",anchor="center",height=3,wraplength=500,borderwidth=10,fg="brown",font="helvetica 10 bold")
lbl_0.grid(column=0,row=0,columnspan=5,sticky='EW')
#le colspawn est fait pour prendre toute la largeur de la grille de la fiche
self.lbl_1Variable = tkinter.StringVar()
lbl_1 = tkinter.Label(self,textvariable=self.lbl_1Variable,anchor="w",height=2,font="helvetica 10")
self.lbl_1Variable.set("Adresse email déstinataire :")
# lbl_1 = tkinter.Label(self,text="Adresse email déstinataire :",anchor="w",height=2,font="helvetica 10")
lbl_1.grid(column=0,row=1,sticky='EW')
lbl_2 = tkinter.Label(self,text="Sujet du mail",anchor="w",height=2,font="helvetica 10")
lbl_2.grid(column=0,row=2,sticky='EW')
lbl_3 = tkinter.Label(self,text="Message du mail",anchor="w",height=2,font="helvetica 10")
lbl_3.grid(column=0,row=3,sticky='EW')
lbl_4 = tkinter.Label(self,text="Chemin des fichiers",anchor="w",height=2,font="helvetica 10")
lbl_4.grid(column=0,row=4,sticky='EW')
lbl_5 = tkinter.Label(self,text="Adresse serveur SMTP",anchor="w",height=2,font="helvetica 10")
lbl_5.grid(column=0,row=5,sticky='EW')
lbl_6 = tkinter.Label(self,text="Taille maxi mails (Mo)",anchor="w",height=2,font="helvetica 10")
lbl_6.grid(column=0,row=6,sticky='EW')
lbl_7 = tkinter.Label(self,text="Adresse mail expéditeur",anchor="w",height=2,font="helvetica 10")
lbl_7.grid(column=0,row=7,sticky='EW')
#Mise en place des 3 blocs texte
self.txt_adr_destVariable = tkinter.StringVar()
self.txt_adr_dest = tkinter.Entry(self,textvariable=self.txt_adr_destVariable, width=40)
self.txt_adr_dest.grid(column=1,row=1,columnspan=3,sticky='EW')
self.txt_adr_dest.bind("<Return>", self.OnPressEnter_adr)
self.txt_adr_destVariable.set("")
self.txt_sujetVariable = tkinter.StringVar()
self.txt_sujet = tkinter.Entry(self,textvariable=self.txt_sujetVariable, width=40)
self.txt_sujet.grid(column=1,row=2,columnspan=3,sticky='EW')
self.txt_sujet.bind("<Return>", self.OnPressEnter_sujet)
self.txt_sujetVariable.set("")
self.txt_msgVariable = tkinter.StringVar()
self.txt_msg = tkinter.Entry(self,textvariable=self.txt_msgVariable, width=40)
self.txt_msg.grid(column=1,row=3,columnspan=3,sticky='EW')
#self.txt_msg.bind("<Return>", self.OnPressEnter_msg)
self.txt_msgVariable.set("")
#Définition du remplissage debug
self.txt_adr_destVariable.set("dav@dav.net")
self.txt_sujetVariable.set("sujet")
self.txt_msgVariable.set("message")
#Création ds boutons
btn_envoie = tkinter.Button(self,text="Valider",command=self.Onbtn_envoieClick)
btn_envoie.grid(column=4,row=8)
btn_chemin = tkinter.Button(self,text="Modif répertoire fichiers",command=self.Onbtn_cheminClick)
btn_chemin.grid(column=3,row=8)
self.grid_columnconfigure(0,weight=1)
self.resizable(True,False)
def Onbtn_envoieClick(self):
#self.lbl_1Variable.set(self.txt_adr_destVariable.get()+" (Vous avez cliqué sur le bouton)" )
self.txt_adr_dest.focus_set()
self.txt_adr_dest.selection_range(0, tkinter.END)
#print('Pas erreur !')
#print(message)
#message = ""
#print('pas erreur')
cmd = "Gomails.py " + str(self.txt_adr_destVariable.get()) + " " + str(self.txt_sujetVariable.get()) + " " + str(self.txt_msgVariable.get())
#print("La commande envoyee est : " + cmd)
#Attention la fonction cmd.read si elle est appellée 2 fois à la deuxième passe je perd les infos à l'intérieur ???
#par exemeple si avant cette ligne, je place un print(cmd.read()) je n'ai plus rien d'afficher dans mon label !
cmd = os.popen("python " + cmd)
#self.lbl_4Variable.set("Message de sortie : " + cmd.read())
messagebox.showinfo("Retour de Gomails", cmd.read())
#cmd.read()
def Onbtn_cheminClick(self):
print("Clique bouton chemin")
dirname = filedialog.askdirectory()
messagebox.showinfo(message=dirname)
def OnPressEnter_adr(self,event):
self.txt_sujet.focus_set()
self.txt_sujet.selection_range(0, tkinter.END)
def OnPressEnter_sujet(self,event):
self.txt_msg.focus_set()
self.txt_msg.selection_range(0, tkinter.END)
# def OnPressEnter_msg(self,event):
# self.button.focus_set()
if __name__ == "__main__":
app = simpleapp_tk(None)
app.title('GUI Gomails')
app.mainloop() |
Partager