# Вебхуки

[Перейти в личный кабинет](https://my.tuna.am/webhooks)

Функционал позволяющий легко узнать, что находится в запросе который посылает какой либо сервис. В частности понять какая реально приходит информация в теле запроса, заголовки, IP источника и так далее.

![webhooks](/docs/img/webhooks/main.png)

***

## HTTP Вебхуки

Отладка и обработка входящих HTTP запросов.

### Простой ответ

Вы можете также редактировать ответ, в частности: код, заголовок `Content-Type` и тело ответа. Окно редактирования можно вызвать в меню справа, тут же есть и другие опции, вроде ссылки, очистки истории или удаления.

![webhook_edit](/docs/img/webhooks/edit.png) ![webhook_menu](/docs/img/webhooks/menu.png)

Пример вызова с помощью `curl`:

![webhook_terminal](/docs/img/webhooks/terminal.png)

### Политика трафика

Помимо простого ответа можно описать сложные правила обработки вебхука, имитируя к примеру ответ API. На отдельно странице есть полная инструкция про [Политики трафика](https://tuna.am/docs/traffic-policy.md).

![Скриншот с политикой трафика в вебхуке](/docs/img/webhooks/reply_tp.png)

### Пересылка запроса в туннель

Если у вас есть запущенные туннели вы можете переслать в него принятый запрос.

![Скриншот с пересылкой запроса в туннель](/docs/img/webhooks/resend_to_tunnel.png)

### Другое

В области обзора на запрос есть горячие ссылки для проверки IP источника в разных сервисах.

![webhook_hotlinks](/docs/img/webhooks/hotlinks.png)

## SMTP Вебхуки

SMTP вебхуки позволяют имитировать отправку почты и принимать письма для отладки. Письма никуда не пересылаются и вы не можете использовать сервис для реальной рассылки почты.

### Приём почты

![Скриншот SMTP Вебхуки](/docs/img/webhooks/mail.png)

Вы можете отправить письмо на указанный ящик с любой реальной почты, на странице вы увидите тело сообщения в текстовом представлении и все SMTP заголовки. Таким образом вы можете в том числе использовать SMTP вебхуки как приватную временную почту, но учитывайте, что сообщения в вебхуках автоматически очищаются с течением времени. Либо для отладки как работают ваши рассылки в testing / dev окружениях.

### Отправка почты

Ещё чаще при разработке для отладки рассылок нужно проверять, а рассылаются ли сообщения всем кому нужно и не отправляются ли кому не нужно. В таком случае вы можете использовать отправку на SMTP сервер `smtp.tuna.am:25` писем с любым адресом назначения, указав адрес ящика вебхука как ящик отправителя. Пример с отправкой письма при помощи **curl** есть ниже в примерах.

## Примеры

В репозиториях GitLab и GitHub можно создавать вебхуки для определённых или всех действий, например открытие PR или push. Мы к примеру используем это для нотификации своему боту, который далее пишет в телеграм об открытии MR или добавляет лейблы к новому Issue. Вы можете использовать Tuna Webhooks для понимания, что именно приходит в теле запроса, какие заголовки и так далее.

### 🦊 GitLab Webhooks

![webhook_gitlab](/docs/img/webhooks/gitlab.png) ![webhook_gitlab_body](/docs/img/webhooks/gitlab_body.png)

### 🐱 GitHub Webhooks

![webhook_github](/docs/img/webhooks/github.png) ![webhook_github_body](/docs/img/webhooks/github_body.png)

### 🔵 Юкасса HTTP-уведомления

![webhook_yookassa](/docs/img/webhooks/yookassa.png) ![webhook_yookassa_body](/docs/img/webhooks/yookassa_body.png)

### 📬 Отправка e-mail с помощью curl

*замените `XXX` на свой адрес вебхука*

Создайте `email.txt` файл с содержимым:

```txt
From: XXX@smtp.tuna.am
To: John Doe <to@example.com>
Subject: Test Email

This is the body.

```

Выполните команду, для отправки:

```sh
curl -s --url 'smtp://smtp.tuna.am:25'  --mail-rcpt 'to@example.com' --mail-from  'XXX@smtp.tuna.am' --upload-file email.txt

```
