python-tools/gmail/email_count.py

42 lines
1.4 KiB
Python
Raw Normal View History

2022-08-31 04:28:00 +00:00
import os
import imaplib
2023-01-08 15:11:40 +00:00
import json
2022-08-31 04:28:00 +00:00
from dotenv import load_dotenv
load_dotenv()
2023-01-08 15:11:40 +00:00
EMAIL_ACCOUNTS = json.loads(os.environ.get("MAIL_ACCOUNTS"))
EMAIL_PASSWORDS = json.loads(os.environ.get("MAIL_PASSWORDS"))
# using zip()
# to convert lists to dictionary
accounts = dict(zip(EMAIL_ACCOUNTS, EMAIL_PASSWORDS))
print(accounts)
2022-08-31 04:28:00 +00:00
################ IMAP SSL ##############################
2023-01-08 15:11:40 +00:00
for account in accounts:
with imaplib.IMAP4_SSL(host="imap.gmail.com", port=imaplib.IMAP4_SSL_PORT) as imap_ssl:
print("Connection Object : {}".format(imap_ssl))
print("Logging into mailbox...")
try:
resp_code, response = imap_ssl.login(account, accounts[account])
except Exception as e:
print("ErrorType : {}, Error : {}".format(type(e).__name__, e))
resp_code, response = None, None
2022-08-31 04:28:00 +00:00
2023-01-08 15:11:40 +00:00
print("Response Code : {}".format(resp_code))
print("Response : {}\n".format(response[0].decode()))
2022-08-31 04:28:00 +00:00
2023-01-08 15:11:40 +00:00
imap_ssl.select('inbox')
resp_code, messages = imap_ssl.search(None, 'UnSeen')
if resp_code == 'OK':
if len(messages[0].split()) > 0:
print('True')
print(messages[0].split())
print(len(messages[0].split()))
else:
print('False')
2022-08-31 04:28:00 +00:00
2023-01-08 15:11:40 +00:00
############### Logout of Mailbox ######################
print("\nLogging Out....")
2022-08-31 04:28:00 +00:00
2023-01-08 15:11:40 +00:00
imap_ssl.close()