HF_AGENT / email_tools.py
Brettapps's picture
Syncing files from local MCP agent storage
1b59ee1 verified
Raw
History Blame Contribute Delete
1.48 kB
import imaplib
import smtplib
import email
from email.message import EmailMessage
import os
# Configuration (from env vars)
EMAIL_USER = os.getenv("EMAIL_USER")
EMAIL_PASS = os.getenv("EMAIL_PASS") # Use App Password!
IMAP_SERVER = os.getenv("IMAP_SERVER") # e.g., imap.gmail.com
SMTP_SERVER = os.getenv("SMTP_SERVER") # e.g., smtp.gmail.com
def list_emails(count=5):
"""Lists the most recent emails."""
try:
mail = imaplib.IMAP4_SSL(IMAP_SERVER)
mail.login(EMAIL_USER, EMAIL_PASS)
mail.select("inbox")
_, data = mail.search(None, "ALL")
ids = data[0].split()
emails = []
for i in ids[-count:]:
_, msg_data = mail.fetch(i, "(RFC822)")
msg = email.message_from_bytes(msg_data[0][1])
emails.append(f"From: {msg['from']}, Subject: {msg['subject']}")
mail.logout()
return str(emails)
except Exception as e:
return f"Error listing emails: {str(e)}"
def send_email(to, subject, body):
"""Sends an email."""
try:
msg = EmailMessage()
msg.set_content(body)
msg['Subject'] = subject
msg['From'] = EMAIL_USER
msg['To'] = to
server = smtplib.SMTP_SSL(SMTP_SERVER, 465)
server.login(EMAIL_USER, EMAIL_PASS)
server.send_message(msg)
server.quit()
return "Email sent successfully."
except Exception as e:
return f"Error sending email: {str(e)}"