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
- Programmer envoi mail gmail - Guide
- Récupérer compte yahoo sans numéro de téléphone - Guide
- Recuperer message whatsapp supprimé - Guide
- Cdg récupérer au terminal de fret - Forum Consommation & Internet
- Récupérer mon compte facebook désactivé - Guide
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, "[email protected]")
root.entry_from.pack()
root.entry_to = tk.Entry(root, width=10)
root.entry_to.insert(tk.END, "[email protected]")
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: [email protected]
To: [email protected]
Sub: Subject
Msg: Dear toto ... Best regards, titi
Bonne chance