---
name: "m365_mail_send"
area: "microsoft365"
title: "Send Outlook mail"
price: "$0.001"
method: "POST"
url: "https://api.conecto.chat/v1/tools/m365_mail_send"
mcp_server: "https://api.conecto.chat/mcp/microsoft365"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/microsoft365/m365_mail_send"
---

# Send Outlook mail (`m365_mail_send`)

Sends an email, or a reply in the same thread, as one of the company's mailboxes.

Send an email as one of the company's mailboxes, saved in its Sent Items: to, cc, subject and a text body. With reply_to_message_id it replies to that message's sender in the same thread instead. $0.001.

Price: $0.001 a call. A call that fails costs nothing.

## Use it when

The agent answers a customer from the company's own address.

- For an address on Conecto's own mail domain, use [email_send](https://conecto.chat/tools/email/email_send.md).

## Say this to your agent

> Tell Lukas his combi steamer ships Monday, from support@.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `mailbox` | string | no | One of the mailboxes the agent may act as; optional when only one is connected. Up to 254 characters. |  |  |
| `to` | array of strings | no | Up to 50 items. |  |  |
| `cc` | array of strings | no | Up to 50 items. |  |  |
| `subject` | string | no | Up to 300 characters. |  |  |
| `body` | string | yes | 1 to 50,000 characters. |  |  |
| `reply_to_message_id` | string | no | Up to 400 characters. |  |  |

## Example

Written for Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff.

MCP: call `m365_mail_send` on the MCP server `https://api.conecto.chat/mcp/microsoft365` with these arguments:

```json
{
  "mailbox": "support@hansenvoss.example",
  "to": [
    "lukas.meyer@hotel-elbblick.example"
  ],
  "subject": "Your combi steamer ships Monday",
  "body": "Hi Lukas,\n\nyour combi steamer leaves our warehouse on Monday, and our technician installs it on Tuesday.\n\nHansen & Voss Service"
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/m365_mail_send \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mailbox": "support@hansenvoss.example", "to": ["lukas.meyer@hotel-elbblick.example"], "subject": "Your combi steamer ships Monday", "body": "Hi Lukas,\n\nyour combi steamer leaves our warehouse on Monday, and our technician installs it on Tuesday.\n\nHansen & Voss Service"}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "m365_mail_send",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.001",
  "balance_usd": "$19.75",
  "result": {
    "sent": true,
    "from": "support@hansenvoss.example",
    "to": [
      "lukas.meyer@hotel-elbblick.example"
    ],
    "cc": null,
    "reply_to": null
  }
}
```

`result`: sent; from; to; cc; reply_to.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `not_connected` | 409 | Microsoft 365 isn't connected yet. | Connect it with m365_connect. |
| `not_allowed` | 403 | The mailbox is not one the agent may act as. | Use a connected mailbox; the owner adds one by connecting again. |
| `vendor_rejected` | 502 | Microsoft refused: the app lacks a permission or consent, or the request. | Ask the admin to grant what the message names. |
| `invalid_input` | 400 | A new email lacks to or subject, or an address is not valid. | Give to and subject, or reply_to_message_id. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [m365_connect](https://conecto.chat/tools/microsoft365/m365_connect.md): Connects the company's Microsoft 365 through its own app, for the mailboxes the agent may act as. Free.
- [m365_mail_search](https://conecto.chat/tools/microsoft365/m365_mail_search.md): The newest messages in a mailbox folder, or those matching a search. Free up to 1,000,000 reads a month.
- [m365_mail_read](https://conecto.chat/tools/microsoft365/m365_mail_read.md): One message in full, with its body as text and its attachments' names. Free up to 1,000,000 reads a month.
- [m365_calendar_events](https://conecto.chat/tools/microsoft365/m365_calendar_events.md): The events in a mailbox's calendar between two times, in UTC. Free up to 1,000,000 reads a month.
- [m365_calendar_create](https://conecto.chat/tools/microsoft365/m365_calendar_create.md): Adds an event to a mailbox's calendar and invites its attendees, with a Teams link if asked. $0.001 a call.
- [m365_calendar_cancel](https://conecto.chat/tools/microsoft365/m365_calendar_cancel.md): Cancels an event the mailbox organizes and tells its attendees; waits for the owner by default. $0.001 a call.
- [m365_files_search](https://conecto.chat/tools/microsoft365/m365_files_search.md): Files in a mailbox user's OneDrive whose name or words match. Free up to 1,000,000 reads a month.
- [m365_files_read](https://conecto.chat/tools/microsoft365/m365_files_read.md): A OneDrive file's words: text, PDF, Word, Excel or PowerPoint, up to 5 MB. Free up to 1,000,000 reads a month.
- [m365_files_upload](https://conecto.chat/tools/microsoft365/m365_files_upload.md): Writes a text file to a path in a mailbox user's OneDrive; replacing one waits for the owner. $0.001 a call.
- [m365_disconnect](https://conecto.chat/tools/microsoft365/m365_disconnect.md): Forgets the app's secret and the mailboxes; nothing in Microsoft 365 changes. Free.
