Adapters
mail_intake.adapters
Summary
Mail provider adapter implementations for Mail Intake.
This package contains adapter-layer implementations responsible for interfacing with external mail providers and exposing a normalized, provider-agnostic contract to the rest of the system.
Adapters in this package:
- Implement the
MailIntakeAdapterinterface. - Encapsulate all provider-specific APIs and semantics.
- Perform read-only access to mail data.
- Return provider-native payloads without interpretation.
Provider-specific logic must not leak outside of adapter implementations. All parsings, normalizations, and transformations must be handled by downstream components.
Public API
MailIntakeAdapterMailIntakeGmailAdapter
Classes
MailIntakeAdapter
Bases: ABC
Base adapter interface for mail providers.
Notes
Guarantees:
1 2 3 | |
Lifecycle:
1 | |
Functions
fetch_message
abstractmethod
Fetch a full raw message by message identifier.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
message_id |
str
|
Provider-specific message identifier. |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, Any]
|
Dict[str, Any]: Provider-native message payload (e.g., Gmail message JSON structure). |
fetch_thread
abstractmethod
Fetch a full raw thread by thread identifier.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
thread_id |
str
|
Provider-specific thread identifier. |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, Any]
|
Dict[str, Any]: Provider-native thread payload. |
iter_message_refs
abstractmethod
Iterate over lightweight message references matching a query.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query |
str
|
Provider-specific query string used to filter messages. |
required |
Yields:
| Type | Description |
|---|---|
Dict[str, str]
|
Dict[str, str]: Dictionaries containing message and thread identifiers. |
Notes
Guarantees:
1 2 | |
MailIntakeGmailAdapter
Bases: MailIntakeAdapter
Gmail read-only adapter.
This adapter implements the MailIntakeAdapter interface using the
Gmail REST API. It translates the generic mail intake contract into
Gmail-specific API calls.
Notes
Responsibilities:
1 2 3 | |
Constraints:
1 2 3 | |
Initialize the Gmail adapter.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
auth_provider |
MailIntakeAuthProvider
|
Authentication provider capable of supplying valid Gmail API credentials. |
required |
user_id |
str
|
Gmail user identifier. Defaults to |
'me'
|
Attributes
service
property
Lazily initialize and return the Gmail API service client.
Returns:
| Name | Type | Description |
|---|---|---|
Any |
Any
|
Initialized Gmail API service instance. |
Raises:
| Type | Description |
|---|---|
MailIntakeAdapterError
|
If the Gmail service cannot be initialized. |
Functions
fetch_message
Fetch a full Gmail message by message ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
message_id |
str
|
Gmail message identifier. |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, Any]
|
Dict[str, Any]: Provider-native Gmail message payload. |
Raises:
| Type | Description |
|---|---|
MailIntakeAdapterError
|
If the Gmail API returns an error. |
fetch_thread
Fetch a full Gmail thread by thread ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
thread_id |
str
|
Gmail thread identifier. |
required |
Returns:
| Type | Description |
|---|---|
Dict[str, Any]
|
Dict[str, Any]: Provider-native Gmail thread payload. |
Raises:
| Type | Description |
|---|---|
MailIntakeAdapterError
|
If the Gmail API returns an error. |
iter_message_refs
Iterate over message references matching the query.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query |
str
|
Gmail search query string. |
required |
Yields:
| Type | Description |
|---|---|
Dict[str, str]
|
Dict[str, str]:
Dictionaries containing |
Raises:
| Type | Description |
|---|---|
MailIntakeAdapterError
|
If the Gmail API returns an error. |