| 12
 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