49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
import imaplib
|
|
import email
|
|
from getpass import getpass
|
|
|
|
# IMAP server settings for Hotmail
|
|
imap_server = 'imap-mail.outlook.com'
|
|
imap_port = 993
|
|
|
|
# Email credentials
|
|
email_address = input('Email address: ')
|
|
password = getpass('Password: ')
|
|
|
|
# Connect to the IMAP server
|
|
imap_conn = imaplib.IMAP4_SSL(imap_server, imap_port)
|
|
|
|
# Login to the email account
|
|
imap_conn.login(email_address, password)
|
|
|
|
# Select the 'alerts' folder
|
|
imap_conn.select('Alerts')
|
|
|
|
# Search for unseen emails in the 'alerts' folder, starting with the newest
|
|
status, response = imap_conn.uid('search', None, 'UNSEEN')
|
|
email_ids = response[0].split()
|
|
|
|
# Loop through the email UIDs
|
|
for email_id in email_ids:
|
|
# Fetch the email by UID
|
|
status, response = imap_conn.uid('fetch', email_id, '(RFC822)')
|
|
raw_email = response[0][1]
|
|
email_message = email.message_from_bytes(raw_email)
|
|
|
|
# Extract the body of the email
|
|
if email_message.is_multipart():
|
|
for part in email_message.get_payload():
|
|
if part.get_content_type() == 'text/plain':
|
|
email_body = part.get_payload(decode=True).decode()
|
|
break
|
|
else:
|
|
email_body = email_message.get_payload(decode=True).decode()
|
|
|
|
print("Email body:")
|
|
print(email_body)
|
|
print("------------------------")
|
|
|
|
# Logout and close the connection
|
|
imap_conn.logout()
|
|
imap_conn.close()
|