mail.message.get
Получить письмо
Описание
Метод относится к REST 3.0. Особенности вызова и формат ответа новой версии API описаны в обзоре REST 3.0.
Метод mail.message.get возвращает письмо по идентификатору.
Параметры
id
integer
обязательный
Идентификатор письма.
Идентификатор можно получить методом mail.message.list
select
array
необязательный
Список полей письма, которые нужно вернуть.
Доступные поля:
- id — идентификатор письма
- mailboxId — идентификатор почтового ящика
- mailboxEmail — электронная почта почтового ящика
- subject — тема письма
- from — отправитель
- to — получатель
- cc — копия
- date — дата письма
- isSeen — признак прочтения
- hasAttachments — признак наличия вложений
- url — ссылка на письмо
- bindings — привязки к объектам
- body — текст письма
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":15,"select":["id","mailboxId","mailboxEmail","subject","from","to","cc","date","isSeen","hasAttachments","url","bindings","body"]}' \
https://**put_your_bitrix24_address**/rest/api/**put_your_user_id_here**/**put_your_webhook_here**/mail.message.get
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":15,"select":["id","mailboxId","mailboxEmail","subject","from","to","cc","date","isSeen","hasAttachments","url","bindings","body"],"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/api/mail.message.get
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame, ISODate } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
type MessageGetResult = {
item: {
id: number
mailboxId: number
mailboxEmail: string
subject: string
from: string
to: string
cc: string | null
date: ISODate | null
isSeen: boolean
hasAttachments: boolean
url: string
bindings: unknown[]
body: string
}
}
try {
const response = await $b24.actions.v3.call.make<MessageGetResult>({
method: 'mail.message.get',
params: {
id: 15,
select: [
'id',
'mailboxId',
'mailboxEmail',
'subject',
'from',
'to',
'cc',
'date',
'isSeen',
'hasAttachments',
'url',
'bindings',
'body',
],
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Message:', result.item.id, result.item.subject, result.item.from)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function fetchMessage() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v3.call.make({
method: 'mail.message.get',
params: {
id: 15,
select: [
'id',
'mailboxId',
'mailboxEmail',
'subject',
'from',
'to',
'cc',
'date',
'isSeen',
'hasAttachments',
'url',
'bindings',
'body',
],
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Message:', result.item.id, result.item.subject, result.item.from)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', fetchMessage)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
select = [
"id",
"mailboxId",
"mailboxEmail",
"subject",
"from",
"to",
"cc",
"date",
"isSeen",
"hasAttachments",
"url",
"bindings",
"body",
]
try:
bitrix_response = client.mail.message.get(
bitrix_id=15,
select=select,
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'mail.message.get',
[
'id' => 15,
'select' => [
'id',
'mailboxId',
'mailboxEmail',
'subject',
'from',
'to',
'cc',
'date',
'isSeen',
'hasAttachments',
'url',
'bindings',
'body'
]
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error: ' . $e->getMessage();
}
BX24.callMethod(
'mail.message.get',
{
id: 15,
select: [
'id',
'mailboxId',
'mailboxEmail',
'subject',
'from',
'to',
'cc',
'date',
'isSeen',
'hasAttachments',
'url',
'bindings',
'body'
]
},
function(result){
console.info(result.data());
console.log(result);
}
);
require_once('crest.php');
$result = CRest::call(
'mail.message.get',
[
'id' => 15,
'select' => [
'id',
'mailboxId',
'mailboxEmail',
'subject',
'from',
'to',
'cc',
'date',
'isSeen',
'hasAttachments',
'url',
'bindings',
'body'
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "mail.message.get", b24.Params{
"id": 15,
"select": []string{"id", "mailboxId", "mailboxEmail", "subject", "from", "to", "cc", "date", "isSeen", "hasAttachments", "url", "bindings", "body"},
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("mail.message.get: %w", err)
}
// Метод заворачивает ответ в объект с ключом "item".
raw, ok := b24.Unwrap(res.Result, "item")
if !ok {
return fmt.Errorf("в ответе нет ключа item")
}
var item struct {
ID b24.ID `json:"id"`
MailboxID b24.ID `json:"mailboxId"`
MailboxEmail string `json:"mailboxEmail"`
Subject string `json:"subject"`
From string `json:"from"`
To string `json:"to"`
}
if err := json.Unmarshal(raw, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.ID, item.MailboxID)
Ответ
HTTP-статус: 200
{
"result": {
"item": {
"id": 15,
"mailboxId": 1,
"mailboxEmail": "user@example.com",
"subject": "Тема письма",
"from": "client@example.com",
"to": "user@example.com",
"cc": null,
"date": "2026-05-25T10:00:00+03:00",
"isSeen": true,
"hasAttachments": false,
"url": "/mail/message/15",
"bindings": [],
"body": "Текст письма"
}
},
"time": {
"start": 1779819678,
"finish": 1779819678.84803,
"duration": 0.8480300903320312,
"processing": 0,
"date_start": "2026-05-26T21:21:18+03:00",
"date_finish": "2026-05-26T21:21:18+03:00",
"operating_reset_at": 1779820278,
"operating": 0
}
}
Возвращаемые данные
result
object
Объект с данными ответа
item
object
Объект письма. Структура ответа зависит от select
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": {
"code": "BITRIX_REST_V3_EXCEPTION_ENTITYNOTFOUNDEXCEPTION",
"message": "Запись с ID = `15` не найдена"
}
}
| Код | Описание | Значение |
|---|---|---|
Поле |
Описание ошибки | Как исправить |
id |
Обязательное поле id не указано |
Добавьте id в тело запроса |

