from Tkinter import * import tkMessageBox import smtplib import time import Tkinter class Scattergories(Tkinter.Frame): def __init__(self, master=None): Tkinter.Frame.__init__(self, master) self.create_entryboxes() root.title("Scattergories") root.geometry("250x600") self.mode = "stopped" self.start_time = 0 self.elapsed_time = 0 self.create_buttons() self.update_timeText() def create_buttons(self): self.timeText = Tkinter.Label(root, text="02:05", font=("Arial", 20)) self.timeText.pack() self.start_pause_unpause_Button = Tkinter.Button(root, text='Start', command=self.start_pause_unpause) self.start_pause_unpause_Button.pack() reset_button = Tkinter.Button(root, text='Reset', command=self.reset) reset_button.pack() def set_time(self, minutes, seconds): pattern = '{0:02d}:{1:02d}' timeString = pattern.format(minutes, seconds) if timeString == '00:00': self.submit() self.time_elapsed = 0 self.showsubmissions() self.timeText.configure(text=timeString) def update_timeText(self): if self.mode == "running": self.time_elapsed = time.time() - self.start_time + self.elapsed_time blabla = 125 - self.time_elapsed seconds = int(blabla % 60) minutes = int((blabla/60) % 60) self.set_time(minutes, seconds) elif self.mode == "running": self.elapsed_time = self.elapsed_time + time.time() - self.start_time self.mode = "stopped" self.start_pause_unpause_Button.config(text="Resume") self.after(1000, self.update_timeText) def reset(self): self.mode = "stopped" self.elapsed_time = 0 self.set_time(2,10) self.timeText.configure(text="02:05") self.start_pause_unpause_Button.config(text="Start") self.clear() self.disable_entry() def start_pause_unpause(self): if self.mode == "stopped": self.start_time = time.time() self.mode = "running" self.start_pause_unpause_Button.config(text='',relief=FLAT) self.enable_entry() def clear(self): self.answer1.set('') self.answer2.set('') self.answer3.set('') self.answer4.set('') self.answer5.set('') self.answer6.set('') self.answer7.set('') self.answer8.set('') self.answer9.set('') self.answer10.set('') self.answer11.set('') self.answer12.set('') def create_entryboxes(self): #Entry box, variable is a string variable self.answer1 = StringVar() self.answer2 = StringVar() self.answer3 = StringVar() self.answer4 = StringVar() self.answer5 = StringVar() self.answer6 = StringVar() self.answer7 = StringVar() self.answer8 = StringVar() self.answer9 = StringVar() self.answer10 = StringVar() self.answer11 = StringVar() self.answer12 = StringVar() label1 = Tkinter.Label(root, text="1:") label1.pack() self.text1 = Tkinter.Entry(root, textvariable=self.answer1) self.text1.pack(padx=5) self.text1.configure(state='disabled') label2 = Tkinter.Label(root, text="2:") label2.pack() self.text2 = Tkinter.Entry(root, textvariable=self.answer2) self.text2.pack(padx=5) self.text2.configure(state='disabled') label3 = Tkinter.Label(root, text="3:") label3.pack() self.text3 = Tkinter.Entry(root, textvariable=self.answer3) self.text3.pack(padx=5) self.text3.configure(state='disabled') label4 = Tkinter.Label(root, text="4:") label4.pack() self.text4 = Tkinter.Entry(root, textvariable=self.answer4) self.text4.pack(padx=5) self.text4.configure(state='disabled') label5 = Tkinter.Label(root, text="5:") label5.pack() self.text5 = Tkinter.Entry(root, textvariable=self.answer5) self.text5.pack(padx=5) self.text5.configure(state='disabled') label6 = Tkinter.Label(root, text="6:") label6.pack() self.text6 = Tkinter.Entry(root, textvariable=self.answer6) self.text6.pack(padx=5) self.text6.configure(state='disabled') label7 = Tkinter.Label(root, text="7:") label7.pack() self.text7 = Tkinter.Entry(root, textvariable=self.answer7) self.text7.pack(padx=5) self.text7.configure(state='disabled') label8 = Tkinter.Label(root, text="8:") label8.pack() self.text8 = Tkinter.Entry(root, textvariable=self.answer8) self.text8.pack(padx=5) self.text8.configure(state='disabled') label9 = Tkinter.Label(root, text="9:") label9.pack() self.text9 = Tkinter.Entry(root, textvariable=self.answer9) self.text9.pack(padx=5) self.text9.configure(state='disabled') label10 = Tkinter.Label(root, text="10:") label10.pack() self.text10 = Tkinter.Entry(root, textvariable=self.answer10) self.text10.pack(padx=5) self.text10.configure(state='disabled') label11 = Tkinter.Label(root, text="11:") label11.pack() self.text11 = Tkinter.Entry(root, textvariable=self.answer11) self.text11.pack(padx=5) self.text11.configure(state='disabled') label12 = Tkinter.Label(root, text="12:") label12.pack() self.text12 = Tkinter.Entry(root, textvariable=self.answer12) self.text12.pack(padx=5) self.text12.configure(state='disabled') def enable_entry(self): self.text1.configure(state='normal') self.text2.configure(state='normal') self.text3.configure(state='normal') self.text4.configure(state='normal') self.text5.configure(state='normal') self.text6.configure(state='normal') self.text7.configure(state='normal') self.text8.configure(state='normal') self.text9.configure(state='normal') self.text10.configure(state='normal') self.text11.configure(state='normal') self.text12.configure(state='normal') def disable_entry(self): self.text1.configure(state='disabled') self.text2.configure(state='disabled') self.text3.configure(state='disabled') self.text4.configure(state='disabled') self.text5.configure(state='disabled') self.text6.configure(state='disabled') self.text7.configure(state='disabled') self.text8.configure(state='disabled') self.text9.configure(state='disabled') self.text10.configure(state='disabled') self.text11.configure(state='disabled') self.text12.configure(state='disabled') def submit(self): fname = 'scattegoriesanswers.txt' with open(fname, 'w') as fout: fout.write("1:") fout.write(self.answer1.get()) fout.write("\n2:") fout.write(self.answer2.get()) fout.write("\n3:") fout.write(self.answer3.get()) fout.write("\n4:") fout.write(self.answer4.get()) fout.write("\n5:") fout.write(self.answer5.get()) fout.write("\n6:") fout.write(self.answer6.get()) fout.write("\n7:") fout.write(self.answer7.get()) fout.write("\n8:") fout.write(self.answer8.get()) fout.write("\n9:") fout.write(self.answer9.get()) fout.write("\n10:") fout.write(self.answer10.get()) fout.write("\n11:") fout.write(self.answer11.get()) fout.write("\n12:") fout.write(self.answer12.get()) self.send_email() def send_email(self): with open ("scattegoriesanswers.txt", "r") as myfile: data=myfile.read() gmail_user = "youremail" gmail_pwd = "pass" FROM = 'youremail' TO = ['williammeehan.11@gmail.com', 'dtmaguire@gmail.com'] #must be a list SUBJECT = "Scattergories" TEXT = data # Prepare actual message message = """\From: %s\nTo: %s\nSubject: %s\n\n%s """ % (FROM, ", ".join(TO), SUBJECT, TEXT) try: #server = smtplib.SMTP(SERVER) server = smtplib.SMTP("smtp.gmail.com", 587) #or port 465 doesn't seem to work! server.ehlo() server.starttls() server.login(gmail_user, gmail_pwd) server.sendmail(FROM, TO, message) #server.quit() server.close() print 'successfully sent the mail' except: print "failed to send mail" root = Tkinter.Tk() app = Scattergories(master=root) app.mainloop()