ΠžΠ±Π·ΠΎΡ€

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ

Руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ API

Π’Π΅Π±Ρ…ΡƒΠΊΠΈ

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° писСм Ρ‡Π΅Ρ€Π΅Π· HTTP API

ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠ΅ письмо #

post

/email

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… писСм Ρ‡Π΅Ρ€Π΅Π· Haskimail Ρ‚Π°ΠΊ ΠΆΠ΅ проста, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° HTTP POST-запроса ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ эндпоинту  /email c JSON-сообщСниСм Π² Ρ‚Π΅Π»Π΅ запроса.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запроса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ curl:

curl "https://api.haskimail.ru/email" \
  -X POST \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Haskimail-Server-Token: server token" \
  -d '{
  "From": "sender@example.com",
  "To": "receiver@example.com",
  "Subject": "Haskimail test",
  "TextBody": "ΠŸΡ€ΠΈΠ²Π΅Ρ‚ Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π₯аски",
  "HtmlBody": "<html><body><strong>ΠŸΡ€ΠΈΠ²Π΅Ρ‚</strong> Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π₯аски.</body></html>",
  "MessageStream": "outbound"
}'

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² сСрвисС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ  X-Haskimail-Server-Token. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСрвСра Haskimail Π΅ΡΡ‚ΡŒ свой собствСнный API-Ρ‚ΠΎΠΊΠ΅Π½, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ доступ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ прилоТСния, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΊ Haskimail.

НазваниС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ рСгистру. Если Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ запрос с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚ HTTP 401 (Ошибка Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ).

ВСстированиС

Для Ρ†Π΅Π»Π΅ΠΉ тСстирования Haskimail позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ тСстовыС письма, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ фактичСски Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ доставлСны ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŽ. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ коррСктности Π²Π°ΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² HASKIMAIL_API_TEST Π² качСствС API-Ρ‚ΠΎΠΊΠ΅Π½Π° сСрвСра.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°:

X-Haskimail-Server-Token: server token

Π€ΠΎΡ€ΠΌΠ°Ρ‚ JSON-сообщСния

JSON-сообщСния ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² Ρ‚Π΅Π»Π΅ HTTP POST-запроса. Поля From ΠΈ To ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ имя Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π˜Π²Π°Π½ Иванов <email@example.com>. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ  HtmlBody Π΄Π»Ρ сообщСний Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ HTML, TextBody  для простого тСкста ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Π° для создания ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ сообщСния. ΠœΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ отправляСт HTML с тСкстовой вСрсиСй для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ HTML. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°.

  • Π£ вас Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ зарСгистрирована ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½Π° подпись отправитСля с адрСсом элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ отправитСля. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚ HTTP 422 (Unprocessable Entity).
  • Имя Π² подписи отправитСля ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· API. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± участникС Π² элСктронном письмС, сохраняя ΠΏΡ€ΠΈ этом свой адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ отправитСля. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ имя Π² ΠΏΠΎΠ»Π΅  From"From": "John Smith <sender@example.com>". Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ относится ΠΊ полям To, Cc, and Bcc
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ нСсколько адрСсов ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ Π² полях  ToCc, and Bcc fields. НСсколько адрСсов Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ запятыми. МаксимальноС количСство ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° сообщСниС - 50. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‰Π΅Π΅ количСство ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ (ToCc, and Bcc) Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 50.
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходящиС письма с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства  Tag. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ статистику ΠΏΠΎ всСм письмам с Ρ‚Π΅Π³Π°ΠΌΠΈ. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сообщСния ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ‚Π΅Π³. ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Π΅Π³Π° β€” 1000 символов.
  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΏΠ΅Ρ€ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊ ΠΏΠΈΡΡŒΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства Metadata.
  • Для адрСсов элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, ΠΈΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ долТности ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТат Π·Π½Π°ΠΊΠΈ прСпинания, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ:  "To" : "\"Иван Иванов, ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΎΠ»ΠΎΠ³.\" <receiver@example.com>"
  • "Headers": [{"Name":"Message-ID", "Value": "<my-id-123@example.com>"}]
  • Если ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ°Π½Π°Π»Π° сообщСний Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ°Π½Π°Π»Π° для исходящих сообщСний (ΠΊΠ°Π½Π°Π» Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… сообщСний ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” Default Transactional Stream).
  • Максимальная Π΄Π»ΠΈΠ½Π° Ρ‚Π΅ΠΌΡ‹ письма β€” 2000 символов, Π° максимальная Π΄Π»ΠΈΠ½Π° адрСса отправитСля ("From") β€” 255 символов. Π”Π»ΠΈΠ½Π° рассчитываСтся ΠΏΠΎ количСству ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ UTF-16: ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Unicode Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 0000 - FFFF ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ 1, Π° ΠΊΠΎΠ΄ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Unicode Π²Ρ‹ΡˆΠ΅ FFFF β€” ΠΊΠ°ΠΊ 2.


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° JSON-сообщСния

{
  "From": "sender@example.com",
  "To": "receiver@example.com",
  "Cc": "copied@example.com",
  "Bcc": "blank-copied@example.com",
  "Subject": "ВСст",
  "Tag": "ΠŸΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅",
  "HtmlBody": "<b>ΠŸΡ€ΠΈΠ²Π΅Ρ‚</b>",
  "TextBody": "ΠŸΡ€ΠΈΠ²Π΅Ρ‚",
  "ReplyTo": "reply@example.com",
  "Metadata": {
      "Color":"blue",
      "Client-Id":"12345"
  },
  "Headers": [
    {
      "Name": "CUSTOM-HEADER",
      "Value": "value"
    }
  ],
  "TrackOpens": true,
  "TrackLinks": "HtmlOnly",
  "MessageStream": "outbound"
}

ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΉ

БущСствуСт Π΄Π²Π° способа Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ отслСТиваниС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΉ для Π²Π°ΡˆΠΈΡ… писСм:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запроса API с отслСТиваниСм ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΉ

{
  ...
  "TrackOpens" : true
}

ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ссылок

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ отслСТиваниС ссылок, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ссылках, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ пСрСходят ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΠΈ Π²Π°ΡˆΠΈΡ… писСм. ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ссылок ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ письма ΠΈΠ»ΠΈ для всСго сСрвСра.

Π£Π·Π½Π°Ρ‚ΡŒ большС ΠΎΠ± отслСТивании ссылок..

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ API-запроса с отслСТиваниСм ссылок

{
  ...
  "TrackLinks" : "HtmlAndText"
}

ВлоТСния

ВлоТСния ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² массивС  Attachments Π² JSON-сообщСнии. КаТдоС Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдставлСно ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ этого массива. 

ПолС Name ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ имя Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŽ сообщСния. Π’ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ распространСния вирусов ΠΈ ΡˆΠΏΠΈΠΎΠ½ΡΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΡ‹ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ²:

  • Π—Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Ρ„Π°ΠΉΠ»ΠΎΠ²: vbs, exe, bin, bat, chm, com, cpl, crt, hlp, hta, inf, ins, isp, jse, lnk, mdb, pcd, pif, reg, scr, sct, shs, vbe, vba, wsf, wsh, wsl, msc, msi, msp, mst.

ПолС ContentType ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ MIME-Ρ‚ΠΈΠΏ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ влоТСния.

ПолС Content Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π² Π²ΠΈΠ΄Π΅ строки, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ base64. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ языков программирования ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠΌΠ΅ΡŽΡ‚ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для кодирования Π² base64, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Java.NETPHPRuby

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ:

  • Если ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π° с Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π½Ρ‹ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ, сообщСниС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΎ. ΠŸΡ€ΠΈ использовании SMTP Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ сообщСниС ΠΎΠ± ошибкС SMTP API.
  • БообщСния ΠΈΠΌΠ΅ΡŽΡ‚ ограничСния ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡŽ сообщСния:
    • TextBody ΠΈ HtmlBody ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄ΠΎ 5 ΠœΠ‘ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ.
    • ΠžΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ сообщСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ влоТСния, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎ 10 ΠœΠ‘. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ нСсколько Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 10 ΠœΠ‘. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: строки, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Base64, ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ большС, Ρ‡Π΅ΠΌ Π΅ΡΡ‚ΡŒ Π½Π° самом Π΄Π΅Π»Π΅, Π½ΠΎ Haskimail рассчитываСт Ρ€Π°Π·ΠΌΠ΅Ρ€ влоТСния послС кодирования Π² Base64.
  • ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ письма с влоТСниями ΠΈΠ· Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ процСсса, Π° Π½Π΅ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° дСйствиС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ Π²Π΅Π±-запросов. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сообщСний большСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° сСрвСры Haskimail Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’Π°ΡˆΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Π°ΠΌ Π·Π° это Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½Ρ‹!

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сообщСния с влоТСниями:

{
  ...
  "Attachments": [
    {
      "Name": "readme.txt",
      "Content": "dGVzdCBjb250ZW50",
      "ContentType": "text/plain"
    },
    {
      "Name": "report.pdf",
      "Content": "dGVzdCBjb250ZW50",
      "ContentType": "application/octet-stream"
    }
  ]
}

ВстраиваСмыС изобраТСния

Haskimail Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ изобраТСния, встраиваСмыС Π² HTML-сообщСния. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ base64, Π° ΠΏΠΎΠ»Π΅ ContentID Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ CID изобраТСния.

Haskimail автоматичСски встроит изобраТСния Π² HTML-ΠΊΠΎΠ΄, Ссли CID-Ρ‚Π΅Π³ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚.  ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•: Π•сли Π²Ρ‹ ΡΡΡ‹Π»Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ нСсколько Ρ€Π°Π· Π² вашСм сообщСнии, достаточно Π²Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Haskimail Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·, сколько Π½Π° Π½Π΅Π³ΠΎ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π² вашСм HTML-ΠΊΠΎΠ΄Π΅. Π­Ρ‚ΠΎ сэкономит Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ эффСктивнСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сообщСния со встраиваСмым ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сообщСния со встраиваСмым ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ

{
  ...
  "Attachments": [
    {
      "Name": "bacon.jpg",
      "Content": "/9j/4AAQSkZJRgABAgEAAAAAAAD/4",
      "ContentType": "image/jpeg",
      "ContentID": "cid:part1.01030607.06070005@gmail.com"
    }
  ]
}

HTML-ΠΊΠΎΠ΄ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ встраивания изобраТСния:

<img src="cid:part1.01030607.06070005@gmail.com">

УспСх

Π’ случаС успСха Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ JSON-сообщСниС, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

ПолС MessageID ΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для вСдСния ΠΆΡƒΡ€Π½Π°Π»Π° Π² вашСй систСмС. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для сопоставлСния ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ сообщСния с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΎΡ‚ Π²Π΅Π±Ρ…ΡƒΠΊΠ° для ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½Π½Ρ‹Ρ… сообщСний ΠΈΠ»ΠΈ API ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½Π½Ρ‹Ρ… сообщСний.

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΎΡˆΠΈΠ±ΠΎΠΊ API.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ JSON-ΠΎΡ‚Π²Π΅Ρ‚Π°:

{
  "ErrorCode": 0,
  "Message": "OK",
  "MessageID": "b7bc2f4a-e38e-4336-af7d-e6c392c2f817",
  "SubmittedAt": "2010-11-26T12:01:05.1794748-05:00",
  "To": "receiver@example.com"
}

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ

ВлоТСния Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, API ΠΈΠ»ΠΈ Π²Π΅Π±Ρ…ΡƒΠΊΠΈ Haskimail, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Haskimail Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ влоТСния.

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² писСм #

post

/email/batch

ΠœΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ с большими объСмами ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈΠ»ΠΈ ограничСниями ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сообщСния ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ. Для этого ΠΌΡ‹ прСдоставляСм ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ, которая позволяСт ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎ 500 ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ сформированных сообщСний Haskimail Π·Π° ΠΎΠ΄ΠΈΠ½ API-Π²Ρ‹Π·ΠΎΠ². Если Π²Ρ‹ отправляСтС массовыС рассылки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ»Π΅ MessageStream, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°Π½Π°Π» ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ конСчная Ρ‚ΠΎΡ‡ΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄ΠΎ 500 сообщСний Π½Π° ΠΎΠ΄ΠΈΠ½ API-Π²Ρ‹Π·ΠΎΠ² ΠΈ Π΄ΠΎ 50 ΠœΠ‘ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ влоТСния.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ сообщСния β€” это массив JSON, содСрТащий нСсколько запросов Π½Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ сообщСний.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… запросов ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ здСсь.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запроса с curl

curl "https://api.haskimail.ru/email/batch" \
  -X POST \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Haskimail-Server-Token: server token" \
  -d '[{
    "From": "sender@example.com",
    "To": "receiver1@example.com",
    "Subject": "Haskimail тСст #1",
    "TextBody": "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π₯аски",
    "HtmlBody": "<html><body><strong>ΠŸΡ€ΠΈΠ²Π΅Ρ‚</strong> Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π₯аски</body></html>",
    "MessageStream": "outbound"
  },
  {
    "From": "sender@example.com",
    "To": "receiver2@example.com",
    "Subject": "ВСстовоС письмо Haskimail β„–2",
    "TextBody": "ЗдравствуйтС, ΡƒΠ²Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Haskimail.",
    "HtmlBody": "<html><body><strong>ЗдравствуйтС</strong> ΡƒΠ²Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Haskimail.</body></html>",
    "MessageStream": "outbound"
  }
]'

ΠžΡ‚Π²Π΅Ρ‚

Аналогично, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ массив JSON, содСрТащий ΠΎΡ‚Π²Π΅Ρ‚ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сообщСния, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² вашСм ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅.

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΎΡˆΠΈΠ±ΠΎΠΊ API ΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ здСсь.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ JSON-ΠΎΡ‚Π²Π΅Ρ‚Π°

[
  {
    "ErrorCode": 0,
    "Message": "OK",
    "MessageID": "b7bc2f4a-e38e-4336-af7d-e6c392c2f817",
    "SubmittedAt": "2010-11-26T12:01:05.1794748-05:00",
    "To": "receiver1@example.com"
  },
  {
    "ErrorCode": 0,
    "Message": "OK",
    "MessageID": "e2ecbbfc-fe12-463d-b933-9fe22915106d",
    "SubmittedAt": "2010-11-26T12:01:05.1794748-05:00",
    "To": "receiver2@example.com"
  }
]