Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- import time
- import imaplib
- import sys
- import email
- import email.header
- import datetime
- INBOX = "INBOX"
- def LoginValidate():
- success = 1
- try:
- short.login(entryUsername.get(), entryPassword.get())
- except short.error:
- print("loginerror")
- success = 0
- if success == 1:
- MainWindow()
- else:
- print("loginerror")
- def LoginShort(event):
- print("hello")
- LoginValidate()
- def ButtonCommand():
- EmailGet(short)
- def EmailGet(short):
- check, blank = short.select(INBOX)
- if check != "OK":
- print("No inbox!")
- if boxTime.get() == "One Day":
- dayrange = 1
- print("dayrange 1")
- elif boxTime.get() == "One Week":
- dayrange = 7
- print("dayrange 7")
- elif boxTime.get() == "30 Days":
- dayrange = 30
- print("dayrange 30")
- elif boxTime.get() == "One Year":
- dayrange = 365
- print("dayrange 1")
- check, emails = short.search(None, '(SUBJECT "Dollar Solar Website Contact Form Submission")')
- if check != "OK":
- print("No emails!")
- email_list = emails[0].split()
- for i in email_list:
- check, email_info, = short.fetch(i, '(RFC822)')
- if check != "OK":
- print("Cannot extract email data")
- else:
- print(i)
- details = email.message_from_bytes(email_info[0][1])
- details_date = email.utils.parsedate_tz(details['Date'])
- datelist = []
- datelist.append(details_date[0:3])
- print(datelist)
- date_year = (int(details_date[0]))
- date_month = (int(details_date[1]))
- date_day = (int(details_date[2]))
- datedays = datetime.date(date_year,date_month,date_day)
- todaydate = datetime.date.today()
- if abs(todaydate-datedays).days >= dayrange:
- print("OUT OF DATE RANGE")
- else:
- print("WITHIN DATE RANGE")
- for part in details.walk():
- if part.get_content_type() == 'text/plain':
- print(part.get_payload())
- emailDisplay.insert(END, part.get_payload())
- def MainWindow():
- mWindow = Toplevel(root)
- mWindow.minsize(width=600, height=400)
- mWindow.title("Dollar Solar Database Manager")
- labStatus = Label(mWindow, text="Logged in successfully, awaiting processing...", fg=("green"))
- labStatus.grid(row=0, sticky=W)
- labGuidance = Label(mWindow, text="Please select a time range, and click the button")
- labGuidance.grid(row=1, sticky=W)
- global boxTime
- boxTime = Spinbox(mWindow,values=("One Day", "One Week", "30 Days", "One Year"), state="readonly")
- boxTime.grid(row=2, column=0, sticky=W)
- buttonAdd = Button(mWindow, text = ("Add to DB"), command=ButtonCommand)
- buttonAdd.place(x=135,y=40)
- global emailDisplay
- emailDisplay = Text(mWindow, fg="gray")
- emailDisplay.grid(row=3, column=0, sticky=W)
- short = imaplib.IMAP4_SSL("imap.gmail.com")
- root = Tk()
- root.title("Dollar Solar Database Manager")
- root.maxsize(width=600, height=350)
- loginmessage = Label(root, text = "Please Log In", font=("Cambria",28))
- loginmessage.grid(row=0, sticky=N)
- labUsername = Label(root, text = ("EMAIL:"))
- labUsername.grid(row=1, sticky =W)
- entryUsername = Entry(root, text = (""))
- entryUsername.grid(row=1, column =0, sticky=E)
- entryUsername.bind("<Return>",LoginShort)
- labPassword = Label(root, text = ("PASSWORD:"))
- labPassword.grid(row=2, sticky=W)
- entryPassword = Entry(root, text = (""),show="*")
- entryPassword.grid(row=2, column =0, sticky=E)
- entryPassword.bind("<Return>",LoginShort)
- buttonConfirm = Button(root, text = ("LOGIN"), command=LoginValidate)
- buttonConfirm.grid(row =1,column =1, sticky=E)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement