Add bounce mailbox processing
This commit is contained in:
@@ -454,3 +454,62 @@ class MailDeliveryResendRequest(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
idempotency_key: str = Field(min_length=1, max_length=200)
|
||||
|
||||
|
||||
class MailBounceSourceRequest(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
profile_id: str = Field(min_length=1, max_length=36)
|
||||
folder: str = Field(default="INBOX", min_length=1, max_length=255)
|
||||
imap_server_id: str | None = Field(default=None, max_length=36)
|
||||
imap_credential_id: str | None = Field(default=None, max_length=36)
|
||||
is_active: bool = True
|
||||
|
||||
|
||||
class MailBounceSourceResponse(BaseModel):
|
||||
id: str
|
||||
tenant_id: str
|
||||
profile_id: str
|
||||
folder: str
|
||||
imap_server_id: str | None = None
|
||||
imap_credential_id: str | None = None
|
||||
expected_imap_transport_revision: str
|
||||
is_active: bool
|
||||
uidvalidity: str | None = None
|
||||
highest_processed_uid: int
|
||||
last_scanned_at: datetime | None = None
|
||||
last_success_at: datetime | None = None
|
||||
last_error: str | None = None
|
||||
|
||||
|
||||
class MailBounceSourceListResponse(BaseModel):
|
||||
sources: list[MailBounceSourceResponse]
|
||||
|
||||
|
||||
class MailBounceObservationResponse(BaseModel):
|
||||
id: str
|
||||
tenant_id: str
|
||||
profile_id: str
|
||||
folder: str
|
||||
uid: str
|
||||
original_message_id: str | None = None
|
||||
command_id: str | None = None
|
||||
recipient: str | None = None
|
||||
action: str
|
||||
status_code: str | None = None
|
||||
diagnostic: str | None = None
|
||||
permanent: bool
|
||||
observed_at: datetime
|
||||
matched: bool
|
||||
evidence: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class MailBounceObservationListResponse(BaseModel):
|
||||
observations: list[MailBounceObservationResponse]
|
||||
|
||||
|
||||
class MailBounceScanResponse(BaseModel):
|
||||
sources: int
|
||||
processed_messages: int
|
||||
observations: int
|
||||
failures: list[dict[str, str]] = Field(default_factory=list)
|
||||
|
||||
Reference in New Issue
Block a user