Recuperer string saisi tkinter envoi de mail
Résolu
Bonjour,
Je développe un programme en python avec interface graphique
Code de la zone de texte :
Code pour le mail :
Dans l'idéal, après "to", j'aimerais ajouter "msg" pour la variable contenant la string saisie.
Merci d'avance
Je développe un programme en python avec interface graphique
tkinterafin d'envoyer des emails. (Je débute avec
tkinter). L'envoi d'email seul fonctionne en console avec un input pour le message à envoyer. En GUI, j'aimerais récupérer dans une variable le message afin de l'envoyer par mail.
Code de la zone de texte :
tx = tkinter.Text(root) tx.place(x=50, y=30, width=200, height=100)
Code pour le mail :
server.sendmail(sent_from, to)
Dans l'idéal, après "to", j'aimerais ajouter "msg" pour la variable contenant la string saisie.
Merci d'avance
A voir également:
- Recuperer string saisi tkinter envoi de mail
- Recuperer message whatsapp supprimé - Guide
- Programmer envoi mail gmail - Guide
- Publipostage mail - Accueil - Word
- Envoi mail cci - Guide
- Windows live mail - Télécharger - Mail
1 réponse
Bonjour,
Explication du problème
Sans boucle d'événement, ton interface
Dans l'idée, il faut créer une (ou plusieurs) zone(s) de texte (destinataire, sujet, message, ...) comme dans un client mail normal, un bouton pour envoyer, et faire en sorte que ton interface réagisse quand on clique sur le bouton (soit à l'aide du paramètre
Comment résoudre ton problème
Voici un exemple minimal (récupéré depuis ce lien) :
Retour à ton problème
Si on adapte l'exemple précédent à ton cas :
Résultat (quand on clique sur le bouton) :
Bonne chance
Explication du problème
Sans boucle d'événement, ton interface
tkinterne peut pas marcher. Je t'invite donc à regarder l'exemple et à l'adapter à tes besoins.
Dans l'idée, il faut créer une (ou plusieurs) zone(s) de texte (destinataire, sujet, message, ...) comme dans un client mail normal, un bouton pour envoyer, et faire en sorte que ton interface réagisse quand on clique sur le bouton (soit à l'aide du paramètre
command, soit à l'aide de
bind) pour déclencher le code pour envoyer l'email construit à partir des valeurs saisies dans la ou les zones de texte, puis lancer la boucle d'événement, voir
mainloop).
Comment résoudre ton problème
Voici un exemple minimal (récupéré depuis ce lien) :
import tkinter as tk root = tk.Tk() def callback(x): print('button', x) tk.Button(text='Button 1', command=lambda : callback(1)).pack() tk.Button(text='Button 2', command=lambda : callback(2)).pack() tk.Button(text='Button 3', command=lambda : callback(3)).pack() root.mainloop()
Retour à ton problème
Si on adapte l'exemple précédent à ton cas :
import tkinter as tk def callback(root): text_from = root.entry_from.get() text_to = root.entry_to.get() text_sub = root.entry_sub.get() text_msg = root.entry_msg.get() print(f""" From: {text_from} To: {text_to} Sub: {text_sub} Msg: {text_msg}""") root = tk.Tk() root.entry_from = tk.Entry(root, width=10) root.entry_from.insert(tk.END, "titi@gmail.com") root.entry_from.pack() root.entry_to = tk.Entry(root, width=10) root.entry_to.insert(tk.END, "toto@gmail.com") root.entry_to.pack() root.entry_sub = tk.Entry(root, width=10) root.entry_sub.insert(tk.END, "Subject") root.entry_sub.pack() root.entry_msg = tk.Entry(root, width=10) root.entry_msg.insert(tk.END, "Dear toto ... Best regards, titi") root.entry_msg.pack() root.button = tk.Button(text="Send", command=lambda: callback(root)) root.button.pack() root.mainloop()
Résultat (quand on clique sur le bouton) :
From: titi@gmail.com
To: toto@gmail.com
Sub: Subject
Msg: Dear toto ... Best regards, titi
Bonne chance