---
title: "mail.agent-reply-result@1 · OpenVibe.Services"
canonical: "https://openvibe.services/docs/contracts/mail.agent-reply-result"
updated: null
---

# mail.agent-reply-result@1 · OpenVibe.Services

HTML: [mail.agent-reply-result@1 · OpenVibe.Services](https://openvibe.services/docs/contracts/mail.agent-reply-result)

# MailAgentReplyResult `mail.agent-reply-result@1`

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

- Version: 1.0.0
- Owner: mail
- Visibility: first-party
- Status: active
- Compatibility: backward
- Schema: [`https://openvibe.network/contracts/mail/agent-reply-result.v1.json`](/docs/contracts/mail.agent-reply-result.json)

mail.agent.reply-result@1: what mail.agent.reply answers once the mail server took the message. \`sent\` is false when the mail server refused it (the answer's \`reason\` says why in plain words) and true when it accepted it — a relay's later bounce is not knowable here and is not claimed. \`message\_id\` is the mail server's id for the sent message when it answers with one; \`rfc\_message\_id\` is the Message-ID header the reply carries, which a later letter in the thread will name in its In-Reply-To.

## Fields

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `sent` | boolean | yes | True when the mail server accepted the reply, false when it did not. |  |
| `message_id` | string \| null |  | The mail server's id for the sent message. | - `maxLength 512` |
| `rfc_message_id` | string \| null |  | The Message-ID header of the reply, without angle brackets. | - `maxLength 998` |
| `reason` | string \| null |  | Why the reply was not sent, in plain words. Null when sent is true. | - `maxLength 300` |

## Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

 Valid: refused

~~~~
{
  "sent": false,
  "message_id": null,
  "rfc_message_id": null,
  "reason": "The mail server refused the message: the recipient does not exist."
}
~~~~

Valid: sent

~~~~
{
  "sent": true,
  "message_id": "m-4720",
  "rfc_message_id": "helper-2@openvibe.email",
  "reason": null
}
~~~~

Rejected: claims-a-bounce

~~~~
{
  "sent": true,
  "message_id": "m-4720",
  "rfc_message_id": "helper-2@openvibe.email",
  "reason": null,
  "bounced_at": "2026-11-07T13:00:00Z",
  "delivered": true
}
~~~~

Rejected: claims-delivery

~~~~
{
  "delivered": true,
  "message_id": "m-4720"
}
~~~~

## Validate

~~~~
const contracts = require('openvibe-contracts');
contracts.validate('mail.agent-reply-result@1', value);   // { valid, errors: [{ path, message }] }
~~~~
