I am trying to create a GUI app in Tkinter that allows user to send an email to me with a query. This will be done via the contact form. All my code to date (for the actual app) is done using Tkinter. I am NOT asking for explaining me how to put a window and widgets in Tkinter. I am asking how to incorporate smptlib module in my case. I would like user to send a query without authorisation like passwords etc.
In my code below the sender and receiver will be the same email address (my email) which is not ideal. I can request the user to input his contact details in the message format but would prefer that the email I receive is linked to the user email address so I can simple reply to his query.
Hope somebody can advise?
In my code below the sender and receiver will be the same email address (my email) which is not ideal. I can request the user to input his contact details in the message format but would prefer that the email I receive is linked to the user email address so I can simple reply to his query.
Hope somebody can advise?
import smtplib import tkinter as tk from tkinter import ttk class Contact(): def __init__(self, the_window): self.the_window = the_window self.the_window.title("Contact Form") self.the_window.geometry("500x400") self.the_window.attributes('-topmost',True) self.sender_box = tk.StringVar() self.name_sender = tk.StringVar() self.create_widgets() def btn_clicked(self): sender = self.sender_box_entry.get() message = self.mess_box_entry.get('1.0', 'end') receiver = "[email protected]" login = "[email protected]" password = "xxxxxx" try: server = smtplib.SMTP("smtp.live.com", 25) server.ehlo() server.starttls() server.login(login, password) server.sendmail(sender, receiver, message) server.quit() statement_1 = "MAIL HAS BEEN SENT" return statement_1 except: statement_2 = "SOMETHING WENT WRONG" return statement_2 def display_mess(self, btn_clicked): self.display['text'] = btn_clicked() def create_widgets(self): self.sender_label = tk.Label(self.the_window, text="Sender Email") self.name_sender_label = tk.Label(self.the_window, text="Name") self.message = tk.Label(self.the_window, text="Write your query below") self.display = tk.Label(self.the_window) self.sender_box_entry = ttk.Entry(self.the_window, textvariable=self.sender_box) self.name_box_entry = ttk.Entry(self.the_window, textvariable=self.name_sender) self.mess_box_entry = tk.Text(self.the_window, width=55, height=10, wrap=tk.WORD) self.button_send = ttk.Button(self.the_window, text="Send", command= lambda:self.display_mess(self.btn_clicked)) self.sender_label.grid(row=0, column=0, pady=(20,0)) self.sender_box_entry.grid(row=0, column=1, pady=(20,0)) self.name_sender_label.grid(row=1, column=0) self.name_box_entry.grid(row=1, column=1) self.message.grid(row=3,column=0, columnspan=2, pady=(20,0)) self.mess_box_entry.grid(row=4,column=0, columnspan=2, padx=30) self.button_send.grid(row=5,column=1, pady=(10,0)) self.display.grid(row=5, column=0, padx=(20,0)) new_window = tk.Tk() application = Contact(new_window) new_window.mainloop()