Send Message
Queue one message for delivery and return its id. A 202 Accepted means the message
is stored and handed off for delivery, not that it has been delivered — poll
GET /v1/messages/{message_id} for the live status and the per-recipient timeline.
Every address across to, cc and bcc becomes its own delivery and counts once
against your allowance. The response carries RRay-Quota-Limit,
RRay-Quota-Remaining and RRay-Quota-Reset describing that allowance.
Authentication
A workspace key (rray_live_…, bound to one workspace) or the account’s platform key. Platform keys name the target workspace with RRay-Workspace-Id. See Credentials.
Headers
Makes a retry safe. The first request with a key performs the send; a retry with the same key and the same body replays the stored response, returning the original message id without sending again. The same key with a different body is 409 idempotency.body_mismatch. Claims are kept for 24 hours, then the key is free to reuse. Omit the header and every attempt sends.
The workspace to act on. Required with a platform key; rejected with a workspace key, which already carries its workspace — a matching value is rejected too, rather than silently ignored. An id that is not yours returns 404 workspace.not_found.
Request
Sender address, optionally with a display name (Acme Receipts <receipts@mail.rray.app>). Use an address on a sending domain you have added, so the message can be signed — unsigned mail is very likely to be refused by the recipient’s provider.
Primary recipients, at least one. An address may not repeat anywhere across to, cc and bcc.
Carbon-copy recipients. Visible to every recipient.
Blind carbon-copy recipients. Not visible to other recipients, but each one is a delivery you can track like any other.
Where replies should go instead of from — one address or several.
Subject line. Single-line text.
HTML body. Send html, text, or both; with both, the recipient’s client picks the part it prefers.
Plain-text body.
Response
Identifier of the accepted message. Pass it to GET /v1/messages/{message_id} to follow the delivery.