MailAgentReplyResult mail.agent-reply-result@1

Generated at from openvibe-contracts v0.419.0 and openvibe-sdk 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

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

FieldTypeRequiredDescriptionConstraints
sentbooleanyesTrue when the mail server accepted the reply, false when it did not.
message_idstring | nullThe mail server's id for the sent message.
  • maxLength 512
rfc_message_idstring | nullThe Message-ID header of the reply, without angle brackets.
  • maxLength 998
reasonstring | nullWhy 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": "[email protected]",
  "reason": null
}
Rejected: claims-a-bounce
{
  "sent": true,
  "message_id": "m-4720",
  "rfc_message_id": "[email protected]",
  "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 }] }