mail.message.thread
Получить цепочку писем
Описание
Метод относится к REST 3.0. Особенности вызова и формат ответа новой версии API описаны в обзоре REST 3.0.
Метод mail.message.thread возвращает цепочку писем по идентификатору одного письма.
Параметры
id
integer
обязательный
Идентификатор любого письма из цепочки.
Идентификатор можно получить методом mail.message.list
limit
integer
необязательный
Максимальное количество писем в ответе.
По умолчанию — 20, максимум — 50
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":15,"limit":20}' \
https://**put_your_bitrix24_address**/rest/api/**put_your_user_id_here**/**put_your_webhook_here**/mail.message.thread
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"id":15,"limit":20,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/api/mail.message.thread
// 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 } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of each MailMessage returned in result[]
type MailMessage = {
id: number
subject: string
from: string
to: string
cc: string
date: string
body: string
}
try {
const response = await $b24.actions.v3.call.make<MailMessage[]>({
method: 'mail.message.thread',
params: {
id: 15,
limit: 20,
},
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('Thread messages count:', result.length)
console.info('First message subject:', result[0]?.subject)
}
} 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 getMailMessageThread() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v3.call.make({
method: 'mail.message.thread',
params: {
id: 15,
limit: 20,
},
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('Thread messages count:', result.length)
console.info('First message subject:', result[0]?.subject)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', getMailMessageThread)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.mail.message.thread(
bitrix_id=15,
limit=20,
).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.thread',
[
'id' => 15,
'limit' => 20
]
);
$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.thread',
{
id: 15,
limit: 20
},
function(result){
console.info(result.data());
console.log(result);
}
);
require_once('crest.php');
$result = CRest::call(
'mail.message.thread',
[
'id' => 15,
'limit' => 20
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "mail.message.thread", b24.Params{
"id": 15,
"limit": 20,
})
if err != nil {
return fmt.Errorf("mail.message.thread: %w", err)
}
var items []struct {
ID b24.ID `json:"id"`
Subject string `json:"subject"`
From string `json:"from"`
To string `json:"to"`
Cc string `json:"cc"`
Date string `json:"date"`
}
if err := json.Unmarshal(res.Result, &items); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
for _, it := range items {
fmt.Println(it.ID, it.Subject)
}
Ответ
HTTP-статус: 200
{
"result": [
{
"id": 15,
"subject": "Договор поставки",
"from": "Иван Петров <ivan.petrov@example.com>",
"to": "manager@example.com",
"cc": "",
"date": "2026-05-26 12:17:35",
"body": "Добрый день! Направляю проект договора."
},
{
"id": 16,
"subject": "Re: Договор поставки",
"from": "manager@example.com",
"to": "Иван Петров <ivan.petrov@example.com>",
"cc": "",
"date": "2026-05-27 12:17:35",
"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
array
Список писем из цепочки
result[]
object
Объект письма из цепочки
id
integer
Идентификатор письма
subject
string
Тема письма
from
string
Отправитель письма
to
string
Получатель письма
cc
string
Получатели копии
date
string
Дата и время письма
body
string
Текст письма
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": {
"code": "BITRIX_REST_V3_EXCEPTION_ENTITYNOTFOUNDEXCEPTION",
"message": "Запись с ID = `15` не найдена"
}
}
| Код | Описание | Значение |
|---|---|---|
Поле |
Описание ошибки | Как исправить |
id |
Обязательное поле id не указано |
Добавьте id в тело запроса |

