import smtplib import imaplib class MailClient: def __init__(self, smtp_server, smtp_port, imap_server, imap_port, username, password): self.smtp_server = smtp_server self.smtp_port = smtp_port self.imap_server = imap_server self.imap_port = imap_port self.username = username self.password = password def send_email(self, recipient, subject, body): """Envía un correo utilizando el servidor SMTP.""" try: with smtplib.SMTP_SSL(self.smtp_server, self.smtp_port) as server: server.login(self.username, self.password) message = f"Subject: {subject}\\n\\n{body}" server.sendmail(self.username, recipient, message) return "Correo enviado correctamente" except Exception as e: return f"Error al enviar el correo: {str(e)}" def fetch_emails(self): """Obtiene los correos más recientes utilizando el servidor IMAP.""" try: with imaplib.IMAP4_SSL(self.imap_server, self.imap_port) as server: server.login(self.username, self.password) server.select("inbox") status, messages = server.search(None, "ALL") email_ids = messages[0].split() emails = [] for email_id in email_ids[-5:]: # Obtener los últimos 5 correos status, msg_data = server.fetch(email_id, "(RFC822)") for response_part in msg_data: if isinstance(response_part, tuple): emails.append(response_part[1].decode()) return emails except Exception as e: return f"Error al recibir correos: {str(e)}"