Skip to main content
Glama
__init__.py1.92 kB
import abc from datetime import datetime from typing import TYPE_CHECKING if TYPE_CHECKING: from mcp_email_server.emails.models import ( AttachmentDownloadResponse, EmailContentBatchResponse, EmailMetadataPageResponse, ) class EmailHandler(abc.ABC): @abc.abstractmethod async def get_emails_metadata( self, page: int = 1, page_size: int = 10, before: datetime | None = None, since: datetime | None = None, subject: str | None = None, from_address: str | None = None, to_address: str | None = None, order: str = "desc", mailbox: str = "INBOX", ) -> "EmailMetadataPageResponse": """ Get email metadata only (without body content) for better performance """ @abc.abstractmethod async def get_emails_content(self, email_ids: list[str], mailbox: str = "INBOX") -> "EmailContentBatchResponse": """ Get full content (including body) of multiple emails by their email IDs (IMAP UIDs) """ @abc.abstractmethod async def send_email( self, recipients: list[str], subject: str, body: str, cc: list[str] | None = None, bcc: list[str] | None = None, html: bool = False, attachments: list[str] | None = None, ) -> None: """ Send email """ @abc.abstractmethod async def delete_emails(self, email_ids: list[str], mailbox: str = "INBOX") -> tuple[list[str], list[str]]: """ Delete emails by their IDs. Returns (deleted_ids, failed_ids) """ @abc.abstractmethod async def download_attachment( self, email_id: str, attachment_name: str, save_path: str, ) -> "AttachmentDownloadResponse": """ Download an email attachment and save it to the specified path """

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ai-zerolab/mcp-email-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server