op_send.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. # coding: utf-8
  2. import os
  3. from time import sleep
  4. from email.header import Header
  5. from email.mime.base import MIMEBase
  6. from email.mime.multipart import MIMEMultipart
  7. from email.mime.application import MIMEApplication
  8. from email.mime.audio import MIMEAudio
  9. from email.mime.image import MIMEImage
  10. from email.mime.text import MIMEText
  11. import yagmail
  12. from envelopes import Envelope
  13. from watchdog.events import FileSystemEventHandler
  14. from watchdog.observers import Observer
  15. from instant_op import MyOpSender
  16. w_dir = None # 'c:/Extrase/op/test/andras_pakai'
  17. if w_dir:
  18. awatchpath = w_dir
  19. else:
  20. awatchpath = os.getcwd()
  21. class MySMTP(yagmail.SMTP):
  22. def __enter__(self):
  23. pass
  24. def __exit__(self, exc_type, exc_val, exc_tb):
  25. pass
  26. class HtmlEnvelope(Envelope):
  27. def __init__(self, msg_type='alternative'):
  28. self.msg_type = msg_type
  29. Envelope.__init__(self)
  30. def to_mime_message(self):
  31. """Returns the envelope as
  32. :py:class:`email.mime.multipart.MIMEMultipart`."""
  33. msg = MIMEMultipart(self.msg_type) # html for attachments
  34. msg['Subject'] = self._header(self._subject or '')
  35. msg['From'] = self._encoded(self._addrs_to_header([self._from]))
  36. msg['To'] = self._encoded(self._addrs_to_header(self._to))
  37. if self._cc:
  38. msg['CC'] = self._addrs_to_header(self._cc)
  39. if self._headers:
  40. for key, value in self._headers.items():
  41. msg[key] = self._header(value)
  42. for part in self._parts:
  43. type_maj, type_min = part[0].split('/')
  44. if type_maj == 'text' and type_min in ('html', 'plain'):
  45. msg.attach(MIMEText(part[1], type_min, self._charset))
  46. else:
  47. msg.attach(part[1])
  48. return msg
  49. # w_dir = os.getcwd()
  50. # print(pdf_files)
  51. # pdf_file = pdf_files[0]
  52. yag = MySMTP(user={'levente.marton@mzk.ro': 'levente.op@mzk.ro'}, host='192.168.201.4', port=25, smtp_starttls=True, smtp_ssl=False)
  53. # print(yag.useralias)
  54. to_addr = '{}@{}'.format(os.path.split(awatchpath)[1].replace('_', '.'), 'mzk.ro')
  55. # to_addr = 'deeejas@yandex.com'
  56. MyOpSender.set_w_path(awatchpath)
  57. class Drivehandler(FileSystemEventHandler):
  58. def on_created(self, event):
  59. op_sender = MyOpSender(awatchpath)
  60. beneficiary = op_sender.op_beneficiary()
  61. op_value = op_sender.op_value()
  62. op_date = op_sender.op_date()
  63. subject = f'OP {beneficiary} {op_date}'
  64. body = f'OP: {beneficiary}\nVALUE: {op_value}\nDATE: {op_date}'
  65. print(subject, body)
  66. with op_sender._last_op() as last_file:
  67. # letter.add_attachment(last_file)
  68. yag.send(to=to_addr, subject=subject, contents=body, attachments=last_file, headers={'From': 'levente.op@mzk.ro'})
  69. def on_deleted(self, event):
  70. print('file deleted')
  71. ev_hendler = Drivehandler()
  72. observer = Observer(timeout=1)
  73. observer.schedule(ev_hendler, awatchpath, recursive=True)
  74. observer.start()
  75. if __name__ == '__main__':
  76. try:
  77. while True:
  78. sleep(1)
  79. except KeyboardInterrupt:
  80. observer.stop()
  81. observer.join()
  82. # print(my_page.getText('text').split(sep='\n')[2:len(my_page.getText('text').split(sep='\n')) - 1:2])
  83. # print(my_page.getText('text').split(sep='\n')[3:len(my_page.getText('text').split(sep='\n')):2])
  84. # pdf_dict = {x: y for x, y in my_page.getText('text')}