First steps:
- Read Mails
This commit is contained in:
@@ -0,0 +1,57 @@
|
|||||||
|
import email
|
||||||
|
import imaplib
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
|
CONFIG SECTION
|
||||||
|
"""
|
||||||
|
imap_port = 993
|
||||||
|
imap_server = "imap.gmail.com"
|
||||||
|
mail_domain = "gmail.com"
|
||||||
|
|
||||||
|
"""
|
||||||
|
END OF CONFIG SECTION
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def import_secrets(file):
|
||||||
|
"""
|
||||||
|
will save the secrets like mail address and password to variables, so they aren't hardcoded
|
||||||
|
:param file: path to file: content is '[MAIL]\n[PWD]'
|
||||||
|
:return: secrets, that can be saved to global variables
|
||||||
|
"""
|
||||||
|
with open(file) as f:
|
||||||
|
mail_addr = f.readline()
|
||||||
|
mail_pwd = f.readline()
|
||||||
|
if '@' not in mail_addr:
|
||||||
|
mail_addr += '@' + mail_domain
|
||||||
|
|
||||||
|
|
||||||
|
def mail_handling():
|
||||||
|
"""
|
||||||
|
Opens inbox, checks for new email fetches then and deletes them from the inbox
|
||||||
|
:return: array of emails: subject, sender, body
|
||||||
|
"""
|
||||||
|
messages = []
|
||||||
|
mail_connection = imaplib.IMAP4_SSL(imap_server, imap_port)
|
||||||
|
mail_connection.login(mail_addr, mail_pwd)
|
||||||
|
mail_connection.select('inbox')
|
||||||
|
|
||||||
|
typ, data = mail_connection.search(None, 'ALL')
|
||||||
|
mail_ids = data[0].split()
|
||||||
|
for i in reversed(mail_ids):
|
||||||
|
mail_connection.fetch(i, '(RFC822)')
|
||||||
|
for response_part in data:
|
||||||
|
if isinstance(response_part, tuple):
|
||||||
|
msg = email.message_from_string(response_part[1].decode('utf-8'))
|
||||||
|
email_subject = msg['subject']
|
||||||
|
email_from = msg['from']
|
||||||
|
email_content = str(msg)
|
||||||
|
messages.extend([email_subject, email_from, email_content])
|
||||||
|
mail_connection.store(i, '\\Deleted')
|
||||||
|
mail_connection.logout()
|
||||||
|
return messages
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user