# coding: utf-8 import os from time import sleep from email.header import Header from email.mime.base import MIMEBase from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication from email.mime.audio import MIMEAudio from email.mime.image import MIMEImage from email.mime.text import MIMEText import yagmail from envelopes import Envelope from watchdog.events import FileSystemEventHandler from watchdog.observers import Observer from instant_op import MyOpSender w_dir = None # 'c:/Extrase/op/test/andras_pakai' if w_dir: awatchpath = w_dir else: awatchpath = os.getcwd() class MySMTP(yagmail.SMTP): def __enter__(self): pass def __exit__(self, exc_type, exc_val, exc_tb): pass class HtmlEnvelope(Envelope): def __init__(self, msg_type='alternative'): self.msg_type = msg_type Envelope.__init__(self) def to_mime_message(self): """Returns the envelope as :py:class:`email.mime.multipart.MIMEMultipart`.""" msg = MIMEMultipart(self.msg_type) # html for attachments msg['Subject'] = self._header(self._subject or '') msg['From'] = self._encoded(self._addrs_to_header([self._from])) msg['To'] = self._encoded(self._addrs_to_header(self._to)) if self._cc: msg['CC'] = self._addrs_to_header(self._cc) if self._headers: for key, value in self._headers.items(): msg[key] = self._header(value) for part in self._parts: type_maj, type_min = part[0].split('/') if type_maj == 'text' and type_min in ('html', 'plain'): msg.attach(MIMEText(part[1], type_min, self._charset)) else: msg.attach(part[1]) return msg # w_dir = os.getcwd() # print(pdf_files) # pdf_file = pdf_files[0] yag = MySMTP(user={'levente.marton@mzk.ro': 'levente.op@mzk.ro'}, host='192.168.201.4', port=25, smtp_starttls=True, smtp_ssl=False) # print(yag.useralias) to_addr = '{}@{}'.format(os.path.split(awatchpath)[1].replace('_', '.'), 'mzk.ro') # to_addr = 'deeejas@yandex.com' MyOpSender.set_w_path(awatchpath) class Drivehandler(FileSystemEventHandler): def on_created(self, event): op_sender = MyOpSender(awatchpath) beneficiary = op_sender.op_beneficiary() op_value = op_sender.op_value() op_date = op_sender.op_date() subject = f'OP {beneficiary} {op_date}' body = f'OP: {beneficiary}\nVALUE: {op_value}\nDATE: {op_date}' print(subject, body) with op_sender._last_op() as last_file: # letter.add_attachment(last_file) yag.send(to=to_addr, subject=subject, contents=body, attachments=last_file, headers={'From': 'levente.op@mzk.ro'}) def on_deleted(self, event): print('file deleted') ev_hendler = Drivehandler() observer = Observer(timeout=1) observer.schedule(ev_hendler, awatchpath, recursive=True) observer.start() if __name__ == '__main__': try: while True: sleep(1) except KeyboardInterrupt: observer.stop() observer.join() # print(my_page.getText('text').split(sep='\n')[2:len(my_page.getText('text').split(sep='\n')) - 1:2]) # print(my_page.getText('text').split(sep='\n')[3:len(my_page.getText('text').split(sep='\n')):2]) # pdf_dict = {x: y for x, y in my_page.getText('text')}