Webhooki Email API&SMTP

Aby otrzymywać informacje o wybranych zdarzeniach związanych z wiadomościami wysłanymi poprzez API v3 lub SMTP, w pierwszej kolejności należy je zasubskrybować przy pomocy prostego zapytania:

1
2
3
4
5
6
7
8
9
POST https://api.freshmail.com/v3/webhook/subscriptions
Authorization: Bearer [BEARER]
Content-Type: application/json;charset=UTF-8

{
  "address": "ADRES",
  "type": "TYP",
  "module": "MODUŁ"
}

Pole module

- transactional_email - moduł związany z wiadomościami Email API&SMTP

Pole type

- open - otwarcie wiadomości

- click - kliknięcie w link wysłany w wiadomości

- bounce - odbicie wiadomości

Pole address

Pole z adresem, na który zostanie wysłana informacja o danym zdarzeniu.

Odpowiedź

Serwer odpowie prostą tablicą JSON z hashem subskrypcji.

1
{"id": "HASH"}

Zwracanie wszystkich webhooks

Request

1
2
GET https://api.freshmail.com/v3/webhook/subscriptions
Authorization: Bearer [BEARER]

Przykładowa odpowiedź

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
[
  {
    "id": "zN",
    "address": "localhost",
    "active": false,
    "type": "click",
    "module": "transactional_email"
  },
  {
    "id": "RW",
    "address": "localhost",
    "active": true,
    "type": "open",
    "module": "transactional_email"
  }
]

Edycja subskrypcji

Dostępne pola

Wymagane dane

- module - moduł z jakiego chcemy dostawać informacje o zdarzeniach

Opcjonalne pola

- address - adres na jaki informacja jest wysyłana

- active - flaga oznaczająca czy dana subskrypcja jest aktywna

- type - typ akcji na jaki ma reagować

Przykładowy request

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
PUT https://api.freshmail.com/v3/webhook/subscriptions/{HASH}
Authorization: Bearer [BEARER]
Content-Type: application/json;charset=UTF-8

{
  "address": "localhost",
  "active": 0,
  "type": "click",
  "module": "transactional_email"
}

Przykładowa odpowiedź

1
{"success": true}

Zwrócenie informacji o konkretnej subskrypcji

1
2
GET https://api.freshmail.com/v3/webhook/subscriptions/{HASH}
Authorization: Bearer [BEARER]

Wymagane pole

- {HASH} - hash subskrypcji

Odpowiedź

1
2
3
4
5
6
7
{
  "id": "5m",
  "address": "localhost",
  "active": true,
  "type": "open",
  "module": "transactional_email"
}

Usuwanie webhook

1
2
DELETE https://api.freshmail.com/v3/webhook/subscriptions/[ID WEBHOOK]
Authorization: Bearer [BEARER]

Wymagane pole

- {HASH} - hash subskrypcji

Odpowiedź

1
{"success": true}

Testowanie webhook

Przygotowaliśmy możliwość przetestowania webhooków. Wystarczy wysłać odpowiednie zapytanie i otrzymamy przykładową informację na wzkazany adres.

Request

1
2
3
4
5
6
7
8
9
POST https://api.freshmail.com/v3/webhook/notificationTest/
Authorization: Bearer [BEARER]
Content-Type: application/json;charset=UTF-8

{
  "address": "localhost",
  "type": "click",
  "module": "transactional_email"
}

Odpowiedź

1
{"success": true}

Struktura webhook

Każdy z webhooków ma swoją strukturę, zależną od jego typu:

Moduł transactional_email

Typ open

1
2
3
4
5
6
7
8
{
  "module": "transactional_email",
  "name": "open",
  "messageId": "03.02.02.aaaaa.1245...",
  "ip": "127.0.0.1",
  "time": 1618996547,
  "version": 1
}

Typ click

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  "module": "transactional_email",
  "name": "click",
  "messageId": "03.02.02.aaaaa.1245...",
  "ip": "127.0.0.1",
  "userAgent": "Mozilla/5.0 ...",
  "url": "https://www.freshmail.pl",
  "time": 1618996547,
  "version": 1
}

Typ bounce

1
2
3
4
5
6
7
8
9
{
  "module": "transactional_email",
  "name": "bounce",
  "messageId": "03.02.02.aaaaa.1245...",
  "type": "hard",
  "reason": "reason ...",   
  "time": 1618996547,
  "version": 1
}

Co oznaczają poszczególne pola w strukturze webhook

module

Aktualnie jest to zawsze transactional_email - dotyczy to wysyłki Email API i SMTP przy pomocy api v3

name

Nazwa zdarzenia. Aktualnie są dostępne: - open - otwarcie maila - click - kliknięcie w link znajdujący się w wiadomości mail - bounce - odbicie wiadomości

messageId

Unikalny identyfikator określający jakiej wiadomości dotyczy informacja

ip

IP odbiorcy maila (ta informacja znajduje się tylko w click i open)

userAgent

Klient pocztowy za pomocą jakiego została otwarta wiadomość mail (ta informacja znajduje się tylko w click i open)

url

Adres, w który kliknięto (ta informacja tylko w click)

time

Czas zdarzenia

reason

Odpowiedź serwera w przypadku odbicia wiadomości mail (ta informacja znajduje się tylko w bounce)

type

Określa typ odbicia wiadomości mail - może przyjąć dwie wartości: hard, soft (ta informacja znajduje się tylko w bounce)

version

Określa wersję webhook