Skip to content

Email

Outlook Mail
API integration

Ship Email features without building the integration. Full Outlook Mail API access via Proxy, normalized data through Unified APIs, and 20+ MCP-ready tools for AI agents — all extensible to your exact use case.

Talk to us
Outlook Mail

Use Cases

Why integrate with Outlook Mail

Common scenarios for SaaS companies building Outlook Mail integrations for their customers.

01

Sync email activity into your CRM or revenue platform

SaaS companies building CRM or sales intelligence tools can pull Outlook messages, threads, and metadata into their platform to give reps full visibility into prospect communications — without asking users to BCC or manually log emails.

02

Automate document ingestion from inbound emails

Expense management, AP automation, and contract lifecycle tools can monitor Outlook folders for incoming attachments like invoices, receipts, or signed documents, then extract and process them automatically using the attachments download endpoint.

03

Power AI-assisted email drafting and reply workflows

AI productivity and copilot products can read unread messages, generate contextual draft replies via LLMs, and save them directly into the user's Outlook drafts folder — letting the end user review and send with one click.

04

Convert inbound emails into support tickets or tasks

Helpdesk and project management tools can monitor shared Outlook mail folders, convert new messages into tickets or work items, and send replies back through the user's authenticated Outlook account to maintain thread continuity.

05

Build folder-based routing and workflow triggers

SaaS platforms can programmatically create custom Outlook folders and child folders, then poll those folders for new messages — enabling end users to trigger workflows simply by moving an email into a designated folder.

What You Can Build

Ship these features with Truto + Outlook Mail

Concrete product features your team can ship faster by leveraging Truto’s Outlook Mail integration instead of building from scratch.

01

Two-way email sync with thread logging

Mirror Outlook inbox and sent folder activity into your platform and send emails on behalf of the user using their authenticated Outlook account, keeping both systems in sync.

02

Automated attachment extraction pipeline

List and download attachments from specific messages or folders to feed into OCR, document processing, or file storage workflows without manual user intervention.

03

Smart draft composer with send-on-review

Create pre-written email drafts in the user's Outlook account using AI or templates, and let the user review and send them natively from Outlook or trigger send via the API.

04

Custom folder-based inbox routing

Programmatically create mail folders and child folders in a user's Outlook account, then poll those folders for new messages to trigger downstream automations like ticket creation or expense processing.

05

Org chart and identity resolution from the user directory

Fetch user profiles including job titles, phone numbers, and organizational data via the Unified User Directory API to map corporate identities and permissions inside your SaaS product.

06

Shared mailbox monitoring for team workflows

List messages across Outlook users and folders to power shared inbox experiences for support, sales, or operations teams — routing emails to the right queue inside your application.

SuperAI

Outlook Mail AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

outlook_list_emails

List Outlook messages in the connected mailbox (or optional user_id). Use when browsing inbox mail or finding messages before get/reply/forward. Prefer folder messages list when scoped to a specific mail folder. Results are summaries; fetch a full record via this resource's get method. Returns one page; pass the response's next_cursor to fetch subsequent pages.

outlook_get_email

Read a single Outlook message including subject, body, and recipients. Use when you know the message id and need its content to summarize or reply. Obtain id from messages or folder messages.

outlook_create_draft

Create an Outlook draft in the Drafts folder (does not send). Use when composing mail to review later. To send immediately without a draft, use messages send-mail. To send this draft later, use messages send-draft.

outlook_update_email

Update an existing Outlook message or draft (subject, body, recipients, flag). Use when editing a draft or changing properties on a known message. Obtain id from messages.

outlook_delete_email

Delete an Outlook message by id. Use when the user asks to remove a message. This delete is permanent and cannot be undone; confirm the exact id and get explicit user confirmation before calling. Obtain id from messages.

outlook_send_draft

Send a previously created Outlook draft. Use when a draft is ready to go; the message is saved to Sent Items. Obtain message_id from messages create or messages list (Drafts). For a brand-new send without a draft, use messages send-mail.

outlook_send_email

Send a new Outlook email immediately (subject, body, toRecipients; optional cc/bcc). Use when the user is ready to send without saving a draft first. To save first, use messages create then messages send-draft.

outlook_reply_email

Reply to the sender of an Outlook message. Use when answering one person (not everyone on the thread). Pass message_id and either comment or message.body — not both. For all recipients, use messages reply-all.

outlook_reply_all_email

Reply to all recipients of an Outlook message. Use when the response should go to everyone on the original mail. Pass message_id and an optional comment. For sender-only, use messages reply.

outlook_forward_email

Forward an Outlook message from the connected mailbox to one or more recipients. Use when sharing a message onward. Pass message_id, toRecipients (top-level or on message — not both), and an optional comment. When acting as a different mailbox user, use messages forward-as-user instead.

outlook_forward_email_as_user

Forward an Outlook message from an explicitly selected mailbox (user_id). Use when the connected account can access another user's mailbox and must forward as that user. Pass user_id, message_id, and toRecipients. For the connected user's own mailbox, prefer messages forward.

outlook_move_email

Move an Outlook message to another mail folder. Use when filing mail into a folder (archive, project folder, etc.). Pass message_id and destinationId (folder id or well-known name such as inbox). Obtain folder ids from mail folders.

outlook_list_mail_folders

List top-level Outlook mail folders (Inbox, Drafts, Sent, and user folders). Use when resolving a folder name to an id before listing folder messages or moving mail. For nested folders under a parent, use child folders. Returns one page; pass the response's next_cursor to fetch subsequent pages.

outlook_get_mail_folder

Read one Outlook mail folder: display name and counts. Use when inspecting a known folder id. Obtain id from mail folders.

outlook_create_mail_folder

Create a top-level Outlook mail folder. Use when the user wants a new filing folder. For a folder under an existing parent, use child folders create. Returns the created folder including its id.

outlook_update_mail_folder

Rename or update an Outlook mail folder. Use when changing a folder's display name. Obtain id from mail folders.

outlook_delete_mail_folder

Delete an Outlook mail folder by id. Use when removing a user-created folder. This delete is permanent and cannot be undone; confirm the exact id and get explicit user confirmation before calling. Obtain id from mail folders.

outlook_list_child_folders

List child folders under a parent Outlook mail folder. Use when navigating a nested folder tree. Pass mail_folder_id of the parent from mail folders. For top-level folders, use mail folders instead. Returns one page; pass the response's next_cursor to fetch subsequent pages.

outlook_create_child_folder

Create a child folder under an existing Outlook mail folder. Use when nesting a new folder beneath a parent. For a top-level folder, use mail folders create instead. Returns the created folder including its id.

outlook_get_child_folder

Read one child Outlook mail folder under a parent. Use when inspecting a nested folder by id. Obtain id from child folders.

outlook_delete_child_folder

Delete a child Outlook mail folder by id. Use when removing a nested folder. This delete is permanent and cannot be undone; confirm the exact id and get explicit user confirmation before calling. Obtain id from child folders.

outlook_update_child_folder

Update a child Outlook mail folder (e.g. rename). Use when changing a nested folder. Obtain id from child folders.

outlook_list_folder_emails

List messages inside a specific Outlook mail folder. Use when reading Inbox, Sent, Drafts, or a custom folder by id. Pass mail_folder_id from mail folders (well-known names like inbox may also work). For mailbox-wide search across folders, use messages list instead. Results are summaries; fetch a full record via messages get. Returns one page; pass the response's next_cursor to fetch subsequent pages.

Why Truto

Why use Truto’s MCP server for Outlook Mail

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Outlook Mail

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified Emails API

Attachments

Attachments are the files associated with an email.

View Docs

Emails

An email is a digital message sent and received electronically over the Internet. It typically contains a subject, sender, recipients, body content, and sometimes attachments.

View Docs

Folders

The folder is a container used to organize and manage email messages.

View Docs

Users

Users represent the people using the underlying emails system. They are usually called agents, team members, admins, etc.

View Docs

Unified User Directory API

Users

The User object represents a User.

View Docs

Unified Search API

Search

Search endpoint for all the apps.

View Docs

How It Works

From zero to integrated

Go live with Outlook Mail in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Outlook Mail account

Use Truto’s frontend SDK to connect your customer’s Outlook Mail account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Outlook Mail

Truto’s Proxy API is a 1-to-1 mapping of the Outlook Mail API. You call us, we call Outlook Mail, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Outlook Mail’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Outlook Mail on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

What authentication methods does Truto support for Outlook Mail?

Truto handles OAuth 2.0 authentication with Microsoft, which is the standard auth flow for Outlook Mail via the Microsoft Graph API. Your end users authorize access through a consent screen, and Truto manages token refresh and storage automatically.

Can I send emails from a user's Outlook account, or only read them?

Both. You can send emails directly using the outlook_messages_send_mail endpoint, or create a draft with create_a_outlook_message and then send it with outlook_messages_send_draft. Emails are sent from the authenticated user's actual address.

How does folder-level message polling work?

You can list all mail folders and child folders for a user, then use list_all_outlook_folder_messages to fetch messages from a specific folder. You can also create custom folders and child folders programmatically to set up targeted routing workflows.

Can I download email attachments directly through Truto?

Yes. Use list_all_outlook_attachments to enumerate attachments on a message, then use outlook_attachments_download to retrieve the file content. You can also fetch metadata for a specific attachment using get_single_outlook_attachment_by_id.

What Unified APIs map to Outlook Mail?

Outlook Mail is available through the Unified Emails API (covering Attachments, Emails, Folders, and Users), the Unified User Directory API (covering Me and Users), and the Unified Search API. This means you can swap or add other email providers without changing your integration code.

Does Truto handle pagination and rate limiting for the Microsoft Graph API?

Yes. Truto abstracts away Microsoft Graph API pagination and handles rate limit retries, so you don't need to implement backoff logic or cursor management in your application code.

Outlook Mail

Get Outlook Mail integrated into your app

Our team understands what it takes to make a Outlook Mail integration successful. A short, crisp 30 minute call with folks who understand the problem.