MultiMail embeds EU AI Act disclosure, GDPR consent handling, and human review evidence into every agent email — giving compliance teams a single platform layer to evaluate and approve.
Compliance teams are increasingly asked to sign off on AI agent email deployments without a consistent infrastructure layer to evaluate. Policy questions about disclosure, auditability, and human review land on compliance officers who must assess each deployment individually — often after the fact. The result is ad-hoc controls stitched together at the application layer: disclosure statements added manually by developers, audit trails kept in spreadsheets, review workflows running through Slack. Three regulatory frameworks create concrete obligations for organizations deploying AI agents that generate or send email. EU AI Act Article 50(1) requires disclosure that content is AI-generated when systems interact with natural persons, unless it is obvious from context. GDPR Article 6 requires a documented lawful basis for processing personal data, and Article 21 gives individuals the right to object to direct marketing at any time. CAN-SPAM requires accurate sender identification, a functioning opt-out mechanism, and honor of opt-out requests within 10 business days. Each of these touches the email delivery layer — and none of them can be reliably enforced by application code alone, because application code changes.
MultiMail moves compliance controls out of application code and into the email delivery infrastructure. Disclosure headers, human review gates, audit logs, and opt-out mechanics are configured at the mailbox level, not the application level. This means compliance officers can evaluate a deployment by reviewing its mailbox configuration rather than auditing every codebase that sends email through it. The gated_send oversight mode is designed for compliance-sensitive deployments: agents can read and draft autonomously, but every outbound message is held for human review before delivery. Reviewers see full message content, the agent's metadata, and the compliance tags associated with the mailbox. Approval and rejection decisions are stored as immutable records with reviewer identity, timestamp, and notes — exportable for GDPR Article 30 records of processing and SOC 2 Type II evidence packages.
Create a mailbox for each email program and tag it with the regulations that apply. MultiMail tracks eu-ai-act, gdpr, and can-spam compliance tags at the mailbox level. These tags drive disclosure behavior, consent checking, and unsubscribe enforcement without requiring per-message application code.
Set ai_disclosure at the mailbox level or per-message. MultiMail injects a disclosure statement into the message body and sets the X-AI-Generated header on every send. This provides the technical disclosure mechanism required under EU AI Act Article 50(1) for AI-generated content directed at natural persons.
Set the mailbox oversight_mode to gated_send. Every outbound message the agent queues is held in a review queue accessible via the API and the MultiMail dashboard. Compliance officers or designated reviewers approve or reject each message before delivery. The review decision, reviewer identity, and timestamp are stored as immutable audit records.
Use list_pending to retrieve held messages and read_email to inspect full message content, headers, and agent-supplied metadata. Tag reviewed messages with tag_email to record compliance status. The audit trail is queryable by date range, mailbox, tag, and reviewer identity for evidence gathering.
MultiMail audit log exports provide timestamped records of every send attempt, review decision, disclosure injection, and oversight mode change. These records export in structured JSON and CSV formats suitable for GDPR Article 30 records of processing activities and SOC 2 Type II evidence packages.
curl -X POST https://api.multimail.dev/v1/create_mailbox \
-H &"cm">#039;Authorization: Bearer $MULTIMAIL_API_KEY' \
-H &"cm">#039;Content-Type: application/json' \
-d &"cm">#039;{
"name": "compliance-agent",
"domain": "multimail.dev",
"oversight_mode": "gated_send",
"ai_disclosure": true,
"compliance_tags": ["eu-ai-act", "gdpr", "can-spam"]
}&"cm">#039;
"cm"># Response
"cm"># {
"cm"># "mailbox_id": "mbox_01HXXX",
"cm"># "address": "[email protected]",
"cm"># "oversight_mode": "gated_send",
"cm"># "ai_disclosure": true,
"cm"># "compliance_tags": ["eu-ai-act", "gdpr", "can-spam"]
"cm"># }Provision a mailbox with disclosure enabled, gated_send oversight, and compliance tags. Every outbound message from this mailbox will require human approval before delivery and will include an AI disclosure statement.
import multimail
client = multimail.Client(api_key="$MULTIMAIL_API_KEY")
response = client.send_email(
from_address="[email protected]",
to="[email protected]",
subject="Q2 Regulatory Reporting Summary",
body="""Key findings for Q2:
- 3 policy exceptions flagged for review
- 2 vendor assessments pending
- 0 reportable incidents
Full report attached.""",
ai_disclosure=True,
metadata={
"agent_id": "compliance-reviewer-v1",
"regulation_context": "eu-ai-act-article-50"
}
)
"cm"># Message is held in review queue — not delivered until approved
print(f"Status: {response.status}") "cm"># queued_for_review
print(f"Email ID: {response.email_id}") "cm"># email_01HXXX
print(f"Review URL: {response.review_url}")Send an email with ai_disclosure enabled. MultiMail injects the disclosure statement and holds the message in the review queue. The agent receives a queued status, not a delivered status.
import multimail
client = multimail.Client(api_key="$MULTIMAIL_API_KEY")
"cm"># Retrieve all messages awaiting human review
pending = client.list_pending(
mailbox="[email protected]"
)
for message in pending.emails:
"cm"># Read full message content including headers
full_message = client.read_email(email_id=message.email_id)
print(f"Subject: {full_message.subject}")
print(f"To: {full_message.to}")
print(f"AI disclosure injected: {full_message.ai_disclosure_present}")
print(f"X-AI-Generated header: {full_message.headers.get(&"cm">#039;X-AI-Generated')}")
# Compliance officer records decision
decision = client.decide_email(
email_id=message.email_id,
decision="approve", # or "reject"
reviewer_note="Reviewed for GDPR lawful basis and CAN-SPAM compliance. Approved."
)
print(f"Decision: {decision.decision} logged at {decision.logged_at}")
print(f"Reviewer: {decision.reviewer_id}")Fetch all pending messages, inspect full content including injected disclosure, and record an approve or reject decision. Each decision is stored with reviewer identity and timestamp.
import multimail
client = multimail.Client(api_key="$MULTIMAIL_API_KEY")
"cm"># Apply compliance review tags to an approved message
client.tag_email(
email_id="email_01HXXX",
tags=[
"compliance-reviewed",
"gdpr-lawful-basis-confirmed",
"can-spam-compliant",
"eu-ai-act-disclosure-present"
]
)
"cm"># Retrieve all compliance-reviewed messages for a reporting period
reviewed = client.check_inbox(
mailbox="[email protected]",
tags=["compliance-reviewed"],
after="2026-01-01",
before="2026-03-31"
)
print(f"Total reviewed messages: {reviewed.total}")
print(f"Approved: {reviewed.counts.approved}")
print(f"Rejected: {reviewed.counts.rejected}")
print(f"Audit log export: {reviewed.export_url}")Apply compliance tags to reviewed messages for queryable audit trails. Retrieve tagged messages by date range for SOC 2 or GDPR Article 30 evidence packages.
AI disclosure under EU AI Act Article 50 is configured at the mailbox level. Every agent routing through a disclosure-enabled mailbox gets the required disclosure injected automatically — no per-agent code changes, no risk of disclosure being omitted when application code is updated.
Every approve and reject decision on a gated message is stored as an immutable record with reviewer identity, timestamp, and reviewer notes. Records are exportable in structured JSON and CSV for GDPR Article 30 records of processing and SOC 2 Type II evidence packages.
Oversight mode, disclosure settings, and compliance tags are configured at the mailbox level. Compliance officers review the mailbox configuration once rather than auditing every agent codebase. New agents that route through the same mailbox inherit the same controls automatically.
Unsubscribe header injection, sender identification, and opt-out link enforcement are handled by MultiMail before message delivery. CAN-SPAM and GDPR Article 21 requirements are enforced at the infrastructure layer, not dependent on individual agent behavior.
MultiMail's oversight, identity, and authorization models are proven correct in Lean 4 and verified in CI on every push. The gated_send mode cannot be bypassed by application code — the guarantee is mathematical, not just tested.
Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a 50-tool MCP server. Formally verified in Lean 4.