API для SMTP сервиса

Отправить письмо

Чтобы отправить письмо, отправьте POST запрос по ссылке:

https://api.sendpulse.com/smtp/emails

Параметры запроса:

Параметр Тип Описание  
email object Сериализованный объект с данными письма required

Параметры массива письма:

Параметр Тип Описание  
html string HTML версия письма, закодированная в base64 required*
text string Текстовая версия письма required*
template object Шаблон: required*
id string/int ID нужного шаблона загруженного в сервис. Получить идентификаторы шаблона можно при помощи метода «Получить список шаблонов в аккаунте» (можно использовать параметры ответа real_id или id) required
variables object Включает названия и значения переменных  вида  {"название переменной": "значение переменной"} required
auto_plain_text boolean Автоматическая генерация текстовой части сообщения text/plain если его нет; по умолчанию false required
subject string Тема письма required
from object Объект с именем и адресом отправителя required
to array Массив получателей required
cc array Массив получателей, которые получат копии письма. Получатели увидят, кому отправили копию письма. optional
bcc array Массив получателей, которые получат скрытую копию письма. Получатели не увидят, кому отправили копию письма. optional
attachments object Сериализованный объект, в котором ключ — это имя файла, а значение — содержание файла {"название":"содержимое"} optional
attachments_binary object Сериализованный объект, в котором ключ — это имя файла, а значение — содержание файла,  закодированная в base64 optional

*Чтобы отправить свой шаблон напрямую в запросе, используйте параметры html и text.

Используйте параметр template для отправки статичного шаблона, загруженного ранее в сервис, и передавайте значения переменных (заданных ранее в шаблоне) через параметр variables.

Пример запроса с отправкой своего шаблона:

{
  "email": {
    "html": "PHA+RXhhbXBsZSB0ZXh0PC9wPg==", 
    "text": "Example text",
    "subject": "Example subject",
    "from": {
      "name": "Example name",
      "email": "sender@example.com"
    },
    "to": [
      {
        "name": "Recipient1 name",
        "email": "recipient1@example.com"
      }
    ]
  }
}

Пример запроса с отправкой письма по шаблону сервиса c кастомными переменными:

{
  "email": {
    "subject": "Test",
    "template": {
      "id": 123456,
      "variables": {
        "name": "Владислав",
        "code": "123456"
      }
    },
    "from": {
      "name": "Mike",
      "email": "mike.johnson@domain.com"
    },
    "to": [
      {
        "email": "recipient1@example.com",
        "name": "Владислав"
      }
    ]
  }
}

В данном примере вместо параметров html и text используется параметр template.

Пример запроса с отправкой копий письма:

{
  "email": {
    "html":"dGVzdCBBUEk=",
    "text": "text",
    "subject": "subject",
    "from": {
      "name": "test",
      "email": "test@test.com"
    },
    "to": [
      {
        "name": "recipient 1",
        "email": "recipient1@test.com"
      }
    ],
    "cc":[
      {
         "name":"recipient 2",
         "email":"recipient2@test.com" 
      }
    ],
    "bcc":[
      {
         "name":"recipient 3",
         "email":"recipient3@test.com" 
      }
    ]
  }
}

В случае успешного запроса вы получите ответ:

{
    "result": true,
    "id": "pzkic9-0afezp-fc" // ID отправленного письма
}

Получить список писем

Чтобы получить список всех отправленных писем, отправьте GET запрос по ссылке:

https://api.sendpulse.com/smtp/emails

Параметры запроса:

Параметр Тип Описание  
limit int Количество записей optional
offset int Смещение для выборки optional
from string Начальная дата для выборки optional
to string Максимальная дата для выборки optional
sender string Отправитель optional
recipient string Получатель optional
country string Если off, то страна не будет указана в ответе optional

В случае успешного запроса вы получите ответ:

   {
        "id": "pzkic9-0afezp-fc",
        "sender": "tech@yourdream.com",
        "total_size": 1175,
        "sender_ip": "173.212.198.158",
        "smtp_answer_code": 250,
        "smtp_answer_code_explain": "Delivered",
        "smtp_answer_subcode": "",
        "smtp_answer_data": "anna-maria@gmail.com   H=gmail-smtp-in.l.google.com [64.233.165.27] X=TLSv1.2:ECDHE-RSA-CHACHA20-POLY1305:256 CV=yes K C=\"250 2.0.0 OK s129-v6si13409556lja.72 - gsmtp\"",
        "used_ip": "78.41.200.153",
        "recipient": "anna-maria@gmail.com",
        "subject": "Template test",
        "send_date": "2018-10-10 12:54:45",
        "tracking": {
            "click": 1,
            "open": 1,
            "link": [
                {
                    "url": "wikia.com",
                    "browser": "Firefox 64.0",
                    "os": "Linux",
                    "screen_resolution": "1920x1080",
                    "ip": "77.222.152.150",
                    "action_date": "2018-12-12 11:54:55"
                }
            ],
            "client_info": [
                {
                    "browser": "Firefox 11.0viaggpht.comGoog",
                    "os": "Windows",
                    "ip": "66.102.9.17",
                    "action_date": "2018-12-12 11:54:54"
                }
            ]
        }
    }

Получить общее количество отправленных писем

Чтобы получить общее количество отправленных писем, отправьте GET запрос по ссылке:

https://api.sendpulse.com/smtp/emails/total

В случае успешного запроса вы получите ответ:

{
    "total": 25408
}

Получить информацию по конкретному письму

Чтобы получить информации по конкретному письму, отправьте GET запрос по ссылке:

https://api.sendpulse.com/smtp/emails/{id}

Параметр запроса:

Параметр Тип Описание  
id string ID письма required

В случае успешного запроса вы получите ответ:

{
  "id": "pzkic9-0afezp-fc",
  "sender": "JohnDoe@test.com",
  "total_size": 1128,
  "sender_ip": "127.0.0.1",
  "smtp_answer_code": 250,
  "smtp_answer_subcode": "0",
  "smtp_answer_data": "Bad recipients",
  "used_ip": "5.104.224.87",
  "recipient": null,
  "subject": "SendPulse :: Email confirmation",
  "send_date": "2013-12-17 10:33:53",
  "tracking": {
    "click": 1,
    "open": 1,
    "link": [
      {
	"url": "http://some-url.com",
	"browser": "Chrome 29.0.1547.57",
	"os": "Linux",
	"screen_resolution": "1920x1080",
	"ip": "46.149.83.86",
	"country": "Ukraine",
	"action_date": "2013-09-30 11:27:40"
      }
    ],
    "client_info": [
      {
	"browser": "Thunderbird 17.0.8",
	"os": "Linux",
	"ip": "46.149.83.86",
	"country": "Ukraine",
	"action_date": "2013-09-30 11:27:49"
      }
    ]
  }
} 

Получить информацию по списку писем

Чтобы получить информацию по списку писем, отправьте POST запрос по ссылке:

https://api.sendpulse.com/smtp/emails/info

Параметры запроса:

Параметр Тип Описание  
emails array Массив с идентификаторами письма, максимальное количество адресов за раз - 500. Пример: ["qj7rpf-0q8ru6-ou","qj7rmw-0alndz-r6","qj7rgo-0ejrg3-d2"] required

Получить список баунсов за сутки

Чтобы получить список баунсов за сутки, отправьте GET запрос по ссылке:

https://api.sendpulse.com/smtp/bounces/day

Параметры запроса:

Параметр Тип Описание  
date string Дата, на которую нужно получить список баунсов. Формат даты YYYY-MM-DD optional
limit int Количество записей, которое нужно взять optional
offset int Смещение для выборки optional

Пример URL, который получить 10 записей начиная с 20:

https://api.sendpulse.com/smtp/bounces/day?limit=10&offset=20

Баунсы получаются только за сутки, начиная с текущего момента. Например сегодня - 2016-04-28 14:34:00, следовательно записи будут получены за период с 2016-04-27 14:34:00 по 2016-04-28 14:34:00

Пример ответа баунсов на определенный день:

{
    "total": 2,
    "emails": [
        {
            "email_to": "gverb2016@yandex.ru",
            "sender": "no-reply@boomstream.com",
            "send_date": "2019-03-25 19:05:02",
            "subject": "[Boomstream] Покупка доступа к видео контенту",
            "smtp_answer_code": 550,
            "smtp_answer_subcode": "5.1.1",
            "smtp_answer_data": "gverb2016@yandex.ru   H=mx.yandex.ru [93.158.134.89] X=TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128 CV=yes: SMTP error from remote mail server after RCPT TO:<gverb2016@yandex.ru>: 550 5.7.1 No such user!"
        },
        {
            "email_to": "1934a1a621@mailboxy.fun",
            "sender": "no-reply@boomstream.com",
            "send_date": "2019-03-25 15:58:00",
            "subject": "Your video files has been deleted",
            "smtp_answer_code": 552,
            "smtp_answer_subcode": "5.7.1",
            "smtp_answer_data": "1934a1a621@mailboxy.fun   H=mx5.mailboxy.fun [165.227.245.168] X=TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128 CV=no: SMTP error from remote mail server after RCPT TO:<1934a1a621@mailboxy.fun>: 552 Mailbox limit exeeded for this email address"
        }
    ],
    "request_limit": 1000,
    "found": 2
}

Получить общее количество баунсов

Чтобы получить отбщее количество баунсов, отправьте GET запрос по ссылке:

https://api.sendpulse.com/smtp/bounces/day/total

В случае успешного запроса вы получите ответ:

{
    "total": 3
}

Отписать получателя

Чтобы отписать подписчика от получения рассылки, отправьте POST запрос по ссылке:

https://api.sendpulse.com/smtp/unsubscribe

Параметр запроса:

Параметр Тип Описание  
emails array Сериализованный массив email адресов required

Пример структуры массива emails:

[
  {
    "email": "badUser1@mailserver.com",
    "comment": "comment1"
  },
  {
    "email": "badUser2@mailserver.com",
    "comment": "comment2"
  }
]

В случае успешного запроса вы получите ответ:

{
   "result": true
}

Удалить из списка отписавшихся

Чтобы удалить подписчика, который отказался получать рассылку, из списка отписавшихся, отправьте DELETE запрос по ссылке:

https://api.sendpulse.com/smtp/unsubscribe

Параметр запроса:

Параметр Тип Описание  
emails array Сериализованный массив адресов ["badUser1@mailserver.com","badUser2@mailserver.com"] required

В случае успешного запроса вы получите ответ:

{
   "result": true
}

Получить список отписавшихся

Чтобы получить список отписавшихся, отправьте GET запрос по ссылке:

https://api.sendpulse.com/smtp/unsubscribe

Параметры запроса:

Параметр Тип Описание  
date string Дата, на которую нужно получить список отписавшихся. Формат даты YYYY-MM-DD optional
limit int Количество записей, которое нужно взять optional
offset int Смещение для выборки optional

Пример URL, который получить 10 записей начиная с 20:

https://api.sendpulse.com/smtp/unsubscribe?limit=10&offset=20

Если указано date, то выгрузка будет за 1 день. Пример URL с датой:

https://api.sendpulse.com/smtp/unsubscribe?date=2016-03-05

В случае успешного запроса вы получите ответ:

[  
   {  
      "email":"4090797@mail.ru",
      "unsubscribe_by_link":1,
      "unsubscribe_by_user":0,
      "spam_complaint":1,
      "date":"2018-11-24 19:19:01"
   },
   {  
      "email":"4lik@rambler.ru",
      "unsubscribe_by_link":1,
      "unsubscribe_by_user":0,
      "spam_complaint":1,
      "date":"2019-03-20 16:47:01"
   }
]

Заново подписать получателя

Чтобы отправить контакту письмо для повторной подписки на получение уведомлений, отправьте POST запрос по ссылке:

https://api.sendpulse.com/smtp/resubscribe

Параметр запроса:

Параметр Тип Описание  
email string Email адрес получателя required
sender string Email адрес отправителя required
lang string Язык письма подтверждения, может принимать значения ru, en, ua, tr, es, pt. По умолчанию: en optional

Обратите внимание, что в течение 24 часов с одного аккаунта вы можете отправить не более 5 писем с запросом повторной подписки.

Пример запроса:

{
    "email":"test@test.com",
    "sender":"my_sender@test.com",
    "lang":"en"
}

В случае успешного запроса вы получите ответ:

{
    "result": true,
    "id": "pzkic9-0afezp-fc"  // ID отправленного письма
}

Получить список IP-адресов отправителя

Чтобы получить список IP-адресов отправителя, отправьте GET запрос по ссылке:

https://api.sendpulse.com/smtp/ips

В случае успешного запроса вы получите ответ:

[
  "127.0.0.1"
]

Получить список адресов отправителя

Чтобы получить список всех отправителей в SMTP сервисе, отправьте GET запрос по ссылке:

https://api.sendpulse.com/smtp/senders

В случае успешного запроса вы получите ответ:

[
    "sender@domain.com"
]

Получить список разрешенных доменов

Чтобы получить список разрешенных доменов,  отправьте GET запрос по ссылке:

https://api.sendpulse.com/v2/email-service/smtp/sender_domains

Обратите внимание, что 17.05.2023 изменилась ссылка на получение списка разрешенных доменов для отправки.

В случае успешного запроса вы получите ответ:

{
   "data":{
      "result":true,
      "data":[
         {
            "id":37857,
            "user_id":7043663,
            "service_type":3,
            "service_value":"example.com",
            "status":0,
            "expire_date":null,
            "auto_free_prolong":0,
            "currency":"",
            "is_default":true,
            "ssl_type":0,
            "ssl_expired":null,
            "ssl_generated":null,
            "checks":{
               "check_dkim":false,
               "check_spf":false,
               "check_dmarc":false,
               "all_checks":false,
               "spf_txt_needed":"v=spf1 include:mxsspf.sendpulse.com +a +mx -all"
            }
         }
      ]
   }
}

Параметры ответа:

Параметр Тип Описание  
id int Идентификатор отправителя  
user_id int Идентификатор пользователя  
service_type int Тип сервиса, который отвечает за домен отправки. Всегда равен 3  
service_value string Значение домена  
status int Статус домена отправки. Принимает значения:
0 — в случае неактивного статуса,
1 — в случае активного
 
is_default boolean Указывает на домен по умолчанию  
ssl_type int Тип сертификата. Принимает значения:
0 — SSL отсутствует
1 — сертификат SSL сгенерирован SendPulse
2 — сертификат SSL сгенерирован пользователем
 
ssl_expired null|datetime Дата и время, до которых действителен SSL сертификат пользователя  
ssl_generated null|int Метка сервиса SendPulse о генерации сертификата SSL  
checks object Объект проверки статуса домена  

Добавить отправителя

Чтобы добавить отправителя, отправьте POST запрос по ссылке:

https://api.sendpulse.com/senders

Адреса отправителей для Email и SMTP сервиса объеденины. Адресам, которые вы будете добавлять после 17.05.2023 в Email сервис, будут также доступны для отправки и в SMTP сервисе.

Параметры запроса:

Параметр Тип Описание  
email string Email адрес отправителя required
name string Имя отправителя required

Пример запроса:

{
   "email": "sender@example.com",
   "name": "Sender"
}

В случае успешного запроса вы получите ответ:

{
   "result": true
}

Добавить домен

Чтобы добавить домен, отправьте POST запрос по ссылке:

https://api.sendpulse.com/v2/email-service/smtp/sender_domains/{{mydomain.com}}

Обратите внимание, что 17.05.2023 изменилась ссылка на добавление доменов для отправки. Также был удален метод верификации домена.

Параметр запроса в URL:

Параметр Тип Описание  
mydomain.com string Ваш домен отправителя required

Пример запроса:

https://api.sendpulse.com/v2/email-service/smtp/sender_domains/mydomain.com

В случае успешного запроса вы получите ответ:

{
   "data":{
      "result":true,
      "error":null
   }
}