Jelajahi Sumber

move mailbox init, login, logout inside the functions

marton levente 11 bulan lalu
induk
melakukan
981e30a0c2
1 mengubah file dengan 17 tambahan dan 10 penghapusan
  1. 17 10
      mail_alert.py

+ 17 - 10
mail_alert.py

@@ -13,7 +13,7 @@ import telegram
 import keyring
 from bs4 import BeautifulSoup
 from telegram.error import BadRequest
-from imap_tools import MailBox, AND, OR
+from imap_tools import MailBox, AND
 
 # -> for python >=3.10, the dh key too small problem
 context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
@@ -23,13 +23,14 @@ config = configparser.ConfigParser()
 config.read('bot')
 bot = telegram.Bot(token=config['AUTH']['token'])
 bot2 = telegram.Bot(token=config['AUTH']['bank'])
-mailbox = MailBox(host=config['email']['host'], ssl_context=context)
-mailbox2 = MailBox(host=config['email']['host'], ssl_context=context)
-mailbox3 = MailBox(host=config['email']['host'], ssl_context=context)
 
-mailbox.login(config['email']['user'], keyring.get_password('yagmail', 'levente.marton@mzk.ro'), initial_folder='Inbox')
-mailbox2.login(config['email']['user'], keyring.get_password('yagmail', 'levente.marton@mzk.ro'), initial_folder='bank_events')
-mailbox3.login(config['email']['user'], keyring.get_password('yagmail', 'levente.marton@mzk.ro'), initial_folder='API')
+# mailbox = MailBox(host=config['email']['host'], ssl_context=context)
+# mailbox2 = MailBox(host=config['email']['host'], ssl_context=context)
+# mailbox3 = MailBox(host=config['email']['host'], ssl_context=context)
+
+# mailbox.login(config['email']['user'], keyring.get_password('yagmail', 'levente.marton@mzk.ro'), initial_folder='Inbox')
+# mailbox2.login(config['email']['user'], keyring.get_password('yagmail', 'levente.marton@mzk.ro'), initial_folder='bank_events')
+# mailbox3.login(config['email']['user'], keyring.get_password('yagmail', 'levente.marton@mzk.ro'), initial_folder='API')
 
 
 def pretty_exc():
@@ -55,9 +56,10 @@ def mask2(msg, to_):
 def mail_alert(event=None):
     '''mail alert Inbox'''
     container = deque(maxlen=500)
-    # mailbox.login(config['email']['user'], keyring.get_password('yagmail', 'levente.marton@mzk.ro'), initial_folder='Inbox')
     while not event.is_set():
         try:
+            mailbox = MailBox(host=config['email']['host'], ssl_context=context)
+            mailbox.login(config['email']['user'], keyring.get_password('yagmail', 'levente.marton@mzk.ro'), initial_folder='Inbox')
             sleep(15)
             msgs = [msgs for msgs in mailbox.fetch(AND(seen=False), mark_seen=False)]
             for msg in msgs:
@@ -93,6 +95,7 @@ def mail_alert(event=None):
                             except IMAP4.abort:
                                 pass
                             # break
+            mailbox.logout()
         except Exception:
             try:
                 mailbox.logout()
@@ -104,9 +107,10 @@ def mail_alert(event=None):
 
 def mail_alert2(event=None):
     container = deque(maxlen=500)
-    # mailbox2.login(config['email']['user'], keyring.get_password('yagmail', 'levente.marton@mzk.ro'), initial_folder='bank_events')
     while not event.is_set():
         try:
+            mailbox2 = MailBox(host=config['email']['host'], ssl_context=context)
+            mailbox2.login(config['email']['user'], keyring.get_password('yagmail', 'levente.marton@mzk.ro'), initial_folder='bank_events')
             sleep(15)
             msgs = [msgs for msgs in mailbox2.fetch(AND(seen=False), mark_seen=True)]
             for msg in msgs:
@@ -141,6 +145,7 @@ def mail_alert2(event=None):
                             except IMAP4.abort:
                                 pass
                             # break
+            mailbox2.logout()
         except Exception:
             # pretty_exc()
             try:
@@ -154,9 +159,10 @@ def mail_alert2(event=None):
 def mail_alert3(event=None):
     '''mail alert Inbox'''
     container = deque(maxlen=500)
-    # mailbox3.login(config['email']['user'], keyring.get_password('yagmail', 'levente.marton@mzk.ro'), initial_folder='API')
     while not event.is_set():
         try:
+            mailbox3 = MailBox(host=config['email']['host'], ssl_context=context)
+            mailbox3.login(config['email']['user'], keyring.get_password('yagmail', 'levente.marton@mzk.ro'), initial_folder='API')
             sleep(15)
             msgs = [msgs for msgs in mailbox3.fetch(AND(seen=False), mark_seen=True)]
             for msg in msgs:
@@ -192,6 +198,7 @@ def mail_alert3(event=None):
                             except IMAP4.abort:
                                 pass
                             # break
+            mailbox3.logout()
         except Exception:
             try:
                 mailbox3.logout()