Рассылка через API: от макета до статистики

Как отправить рассылку из своей системы: загрузить письмо, собрать получателей, запустить и забрать результат. Подробности по каждому вызову есть в разделах ресурсов.

1

Загрузите макет письма

HTML письма передаётся в body. Подвал с отпиской рассылка добавит сама: ваш подвал макета (footer), если его нет, подвал аккаунта из настроек, иначе стандартный. Разложить макеты по папкам можно в разделе Папки макетов.

curl https://v1.estismail.com/mailer/makets.json \
  -H "X-Estis-Auth: ВАШ_КЛЮЧ" \
  -d title="Октябрьская распродажа" \
  --data-urlencode body@letter.html
Ответ 201: номер макета
{"id":4321}
2

Создайте группу

curl https://v1.estismail.com/mailer/lists.json \
  -H "X-Estis-Auth: ВАШ_КЛЮЧ" \
  -d title="Покупатели октября" \
  -d subscribe_link=https://shop.example.com
Ответ 201: номер группы
{"id":12345}
3

Добавьте подписчиков

Каждый адрес передаётся отдельным запросом. Новому адресу уходит письмо «подтвердите подписку», письма рассылок он получит после подтверждения. На тарифах Premium и Enterprise можно добавить без письма подтверждения: activation_letter=0. Много адресов сразу передаются импортом, до 1000 за запрос.

curl https://v1.estismail.com/mailer/emails.json \
  -H "X-Estis-Auth: ВАШ_КЛЮЧ" \
  -d email=anna@example.com -d list_id=12345 \
  -d name="Анна" -d city="Киев" -d activation_letter=0
Ответ 201: номер подписчика
{"id":67890}
4

Проверьте отправителя

Письма уходят от подтверждённого отправителя. Без sender_email_id рассылка берёт отправителя по умолчанию. Записи DNS для домена отправителя (DKIM, SPF, DMARC) берите в разделе Домены.

curl -G https://v1.estismail.com/mailer/senderemails.json \
  -H "X-Estis-Auth: ВАШ_КЛЮЧ" \
  --data-urlencode 'fields=["id","email","approved","default"]'
Ответ 200
{
  "sender_emails": [
    {
      "id": 5501,
      "email": "news@shop.example.com",
      "approved": 1,
      "default": 1
    }
  ]
}
5

Создайте рассылку

Без date рассылка начнётся в течение минуты, с date в будущем начнётся в это время.

curl https://v1.estismail.com/mailer/sends.json \
  -H "X-Estis-Auth: ВАШ_КЛЮЧ" \
  -d maket_id=4321 -d letter_title="Октябрьская распродажа" \
  -d included_lists='[12345]'
Ответ 201: номер рассылки
{"id":290701}
6

Следите за статусом

curl -G https://v1.estismail.com/mailer/sends/290701.json \
  -H "X-Estis-Auth: ВАШ_КЛЮЧ" \
  --data-urlencode 'fields=["id","status","count"]'
Ответ 200: status 0 запланирована, 1 идёт, 4 завершена
{
  "id": 290701,
  "count": 1520,
  "status": 1
}
7

Заберите статистику

curl -G https://v1.estismail.com/mailer/sendstatistics/290701.json \
  -H "X-Estis-Auth: ВАШ_КЛЮЧ" \
  --data-urlencode 'fields=["id","common","errors"]'
Ответ 200
{
  "id": 290701,
  "common": {
    "count": 1520,
    "delivered": 1498,
    "bounce": 22,
    "opened": 611,
    "clicked": 95,
    "spam": 1,
    "unsubs": 4,
    "deferred": 0,
    "opens_total": 902,
    "clicks_total": 131,
    "final": false
  },
  "errors": [
    {
      "code": 501,
      "reason": "Почта не существует",
      "count": 20
    },
    {
      "code": 512,
      "reason": "Mail.ru заблокировал письма как СПАМ",
      "count": 2
    }
  ]
}

Вопросы по API: support@estismail.com