__init__.py•1.25 kB
import abc
from datetime import datetime
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from mcp_email_server.emails.models import 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",
) -> "EmailMetadataPageResponse":
"""
Get email metadata only (without body content) for better performance
"""
@abc.abstractmethod
async def get_emails_content(self, email_ids: list[str]) -> "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,
) -> None:
"""
Send email
"""