Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import requests
- from mechanicalsoup import StatefulBrowser
- import bs4 as bs
- import smtplib
- import time
- class EkontoMail:
- url = 'https://elogin.put.poznan.pl/email/index.php'
- url2 = 'https://poczta.student.put.poznan.pl/zimbra/h/search?mesg=welcome&init=true'
- def __init__(self,user_name, user_password):
- self.user_name = user_name
- self.user_password = user_password
- self.browser = StatefulBrowser()
- self.old_messages = self.get_recent_mails_links()
- def get_recent_mails_links(self):
- self.browser.open(self.url)
- self.browser.select_form('form[action="index.php"]')
- self.browser['user_name']=self.user_name
- self.browser['user_password']=self.user_password
- self.browser.submit_selected()
- self.response = self.browser.open(self.url2)
- index = bs.BeautifulSoup(self.response.text, "lxml")
- messages = index.tbody.find_all('a')
- return messages
- def check_if_new_messages(self):
- new_links = self.get_recent_mails_links()
- if new_links[0] != self.old_messages[0]:
- return True
- else:
- return False
- def format_messages(self, messages):
- formated_messages = []
- for message in messages:
- message_link = message.get('href')
- basic_url = 'https://poczta.student.put.poznan.pl/zimbra/h/search?'
- message_page = self.browser.open(basic_url + message_link)
- message_page = bs.BeautifulSoup(message_page.text, "lxml")
- message_values = message_page.find_all('td', class_='MsgHdrValue')
- name = message_values[0].get_text(strip=True)
- title = message_values[1].get_text(strip=True)
- message_body = message_page.find('td', id='iframeBody')
- message_text = [str(i).strip() for i in message_body.contents]
- print(name, title, message_text)
- formated_messages.append([name, title, message_text])
- return formated_messages
- def save_to_file(self, formated_messages):
- for formated_message in formated_messages:
- name, title, message_text = formated_message
- name_stripped = ''
- for letter in name:
- if letter == '<' or '':
- break
- save_list = [name + '\n', title] + message_text
- with open("siemanko\{}.txt".format(name_stripped),
- mode='w', encoding='utf-8') as f:
- f.writelines(save_list)
- values = {
- 'user_name': 'mateusz.m.klaczynski@student.put.poznan.pl',
- 'user_password': 'PAssword12',
- # 'cstfmiddlewaretoken':csrf_token
- }
- konto = EkontoMail(values['user_name'], values['user_password'])
- while True:
- if konto.check_if_new_messages():
- mails = konto.get_recent_mails_links()
- mails = konto.format_messages(mails)
- konto.save_to_file(mails)
- print("Nowa wiadomość")
- time.sleep(1000)
- gmail_username = 'onufryklaczynski@gmail.com'
- gmail_password = 'mathiu90'
- # try:
- # server = smtplib.SMTP_SSL('smtp.gmail.com')
- # server.ehlo()
- # server.login(gmail_username,gmail_password)
- # server.sendmail(gmail_username, gmail_username, 'siemanko')
- # except:
- # print("smth went wrong")
- #
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement