Development

Как использовать HTTP API для отправки электронных писем

Отправка и отслеживание электронных писем без дополнительного кодирования.

April 17 2017

Коммуникационные технологии достигли того этапа, на котором стало недостаточно использовать однин или два канала. Каждый канал имеет свои преимущества и недостатки, и это неоспоримый факт. Вы можете использовать push-уведомления для таргетирования и охвата пользователей в конкретном регионе. SMS обычно всегда прочитываются. Viber дарит интерактивное общение и развлекательный контент. Электронные письма не надоедают клиентам.

В любом случае сегодняшняя клиентоориентированная экосистема требует от вас адаптации коммуникационных стратегий под нужды клиента. У многих уже есть платформа, на основе которой осуществляется выбор. Они уже используют Gmail, Facebook Messenger или Viber и Outlook, а также ряд других приложений. Ключевой фактор заключается в том, что они используют каждый из этих каналов для конкретных целей.

К примеру, некоторые используют Messenger для ведения диалогов в реальном времени. В то же время предпочитают получать новостные рассылки от брендов через Gmail. Некоторые хотят, чтобы с ними связывались через SMS, поскольку это по-прежнему самый надежный канал коммуникаций. Есть клиенты, которые предпочитают получать голосовые звонки в случае важных уведомлений. Несомненно то, что ваша клиентская база требует использования различных способов для ее полного охвата.

ПОЧЕМУ ЭЛЕКТРОННАЯ ПОЧТА?

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

Вот почему по электронной почте ежедневно отправляются миллиарды сообщений. По информации компании Ericsson, к 2020 году 70% населения мира будет пользоваться смартфонами, а 90% войдет в зону покрытия мировой мобильной сети. Важно также отметить, что более 50% электронных писем прочитывается с мобильных устройств, а не с рабочего стола, и это количество продолжает расти. Что означает, что пользователи смогут иметь доступ к своим аккаунтам в любое время.

Наш HTTP API предлагает отправку простых и многофункциональных электронных писем; вы сможете отправлять HTML-письма с вложениями и просматривать журналы и отчеты о доставке. Однако до начала рассылки электронных писем вам необходимо создать действующий аккаунт Infobip.

КАК СОЗДАТЬ АККАУНТ

В случае если вы пользуетесь другими нашими сервисами через API, у вас уже есть действующий аккаунт Infobip, и вы можете использовать его для отправки электронных писем.

Заранее продумайте все вопросы, которые связаны с доменом, поскольку репутация отправителя электронного письма тесно связана с доменным именем и с IP-адресом. Проблемы с репутацией возникают тогда, когда вы превращаетесь в «плохого» отправителя, и это может сильно повлиять на состояние домена. «Плохой» отправитель потратит огромные ресурсы на то, чтобы вернуть доверие к себе. Так что помните, что разделение доменов по типам отправляемых сообщений – это хорошая идея.

Если вы не продумали свой план в отношении домена – не беспокойтесь. Вы можете использовать наш тестовый домен для ознакомления с сервисом, а позднее начать использовать свой собственный домен. После выбора предпочтительного домена вы должны будете связаться с аккаунт-менеджером, и тогда мы сможем интегрировать домен в нашу платформу. После получения дополнительных инструкций по конфигурации DNS и установления нужного канала коммуникации между вашим доменом и платформой вы сможете перейти к следующему этапу и начать успешную рассылку электронных писем.

Не стесняйтесь задать любые возникающие вопросы и пишите нам на: support@infobip.com.

ДАВАЙТЕ ОТПРАВИМ EMAIL

После создания аккаунта вы сможете отправлять электронные письма. Вы можете отправить простое письмо или письмо с обогащенным контентом. Если вы решите приступить к рассылке простых писем, это будет означать, что вы отправляете единое сообщение email только по одному адресу через запрос:


curl -s --user user:password \
https://api.infobip.com/email/1/send \
-F from='company@somecompany.com' \
-F to='john.smith@somedomain.com' \
-F subject='Mail subject text' \
-F text='Mail body text'

С другой стороны, вы можете отправлять многофункциональные электронные сообщения, которые представляют собой сообщения с вложением (вложениями), отправляемые на один или много адресов:

curl -s --user user:password \
https://api.infobip.com/email/1/send \
-F from='Jane Smith ' \
-F to='john.smith@somedomain.com' \
-F to='tom.smith@somedomain.com' \
-F subject='Mail subject text' \
-F text='Mail body text' \
--form-string html='<h1>Html body</h1><p>Rich HTML message body.</p>' \
-F attachment=@files/image1.jpg

С ответом:

{
 "messages": [
   {
     "to": "john.smith@somecompany.com",
     "messageCount": 1,
     "messageId": "9129e972-be85-49ed-b0e9-f51fbd2b27c0",
     "status": {
       "groupId": 1,
       "groupName": "PENDING",
       "id": 7,
       "name": "PENDING_ENROUTE",
       "description": "Message sent to next instance"
     }
   },
   {
     "to": "tom.smith@somecompany.com",
     "messageCount": 1,
     "messageId": "cd0c5682-42e2-481a-be95-15ed72450646",
     "status": {
       "groupId": 1,
       "groupName": "PENDING",
       "id": 7,
       "name": "PENDING_ENROUTE",
       "description": "Message sent to next instance"
     }
   }
 ]
}

Это пример электронного письма с одним вложением, которое отправлено на два адреса. Если вы хотите отправить email с несколькими вложениями, введите в запрос параметры для нескольких вложений.

Заголовок ответа кода статуса HTTP при успешной отправке будет выглядеть как 200 OK а если вы попытаетесь отправить сообщение без авторизации, вы получите код ошибки 401 Unauthorized.

ОТЧЕТЫ О ДОСТАВКЕ ЭЛЕКТРОННЫХ ПИСЕМ И ЛОГИ ОТПРАВКИ

ОТЧЕТЫ О ДОСТАВКЕ ЭЛЕКТРОННЫХ ПИСЕМ

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

Вы можете вводить параметры для получения отчетов о доставке, и также вы можете делать запросы без каких-либо параметров:


GET /email/1/reports HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Accept: application/json

Результат:

{
 "results": [
   {
     "messageId": "bbcc6960-1fcb-497c-b7ea-83ccba41492e",
     "to": "recipient@infobip.com",
     "sentAt": "2016-08-31T13:25:18.477+0000",
     "doneAt": "2016-08-31T13:25:50.893+0000",
     "messageCount": 1,
     "price": {
       "pricePerMessage": 0,
       "currency": "UNKNOWN"
     },
     "status": {
       "groupId": 3,
       "groupName": "DELIVERED",
       "id": 5,
       "name": "DELIVERED_TO_HANDSET",
       "description": "Message delivered to handset"
     },
     "error": {
       "groupId": 0,
       "groupName": "OK",
       "id": 0,
       "name": "NO_ERROR",
       "description": "No Error",
       "permanent": false
     },
     "channel": "EMAIL"
   }
 ]
}

Отчет о доставке без каких-либо параметров предоставит вам детальную информацию об отправленных электронных письмах, включая статус письма, ID сообщения, время и дату отправки/получения письма, информацию об ошибках и пр.

Также вы можете получить отчет о доставке через использование messageId:

GET /email/1/reports?messageId=bbcc6960-1fcb-497c-b7ea-83ccba41492e HTTP/1.1

Еще одна возможность – два начальных отчета о доставке:

GET /email/1/reports?limit=2 HTTP/1.1

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

Email логи

Как и отчеты о доставке, логи отправки предоставляют дополнительную информацию об отправленных сообщениях. Ключевое различие заключается в том, что логи доступны в течение последних 48 часов, их можно запрашивать любое количество раз, и вы будете видеть результат по сообщениям безотносительно их текущего статуса:

Результат:

{
 "results": [
   {
     "messageId": "64c98929-f160-4e2c-b156-ca88cc733547",
     "to": "recipient@infobip.com",
     "from": "sender@infobip.com",
     "text": "Test text",
     "sentAt": "2016-09-01T10:29:00.440+0000",
     "doneAt": "2016-09-01T10:29:01.130+0000",
     "price": {
       "pricePerMessage": 0.0005,
       "currency": "EUR"
     },
     "status": {
       "groupId": 3,
       "groupName": "DELIVERED",
       "id": 5,
       "name": "DELIVERED_TO_HANDSET",
       "description": "Message delivered to handset"
     },
     "channel": "EMAIL"
   }
 ]
}

В ответе будет содержаться информация обо всех электронных письмах, отправленных через платформу Infobip за последние 48 часов. Ни один из запросов не является обязательным для данного типа, но если вам потребуется найти конкретное сообщение, вы можете использовать параметры фильтрации.

К примеру, логи могут быть получены через один или, в нашем случае, через несколько ID сообщений:

GET /email/1/logs?messageId=64c98929-f160-4e2c-b156-ca88cc733547,60d586a1-6448-4c5f-860d-be3ddbea16da HTTP/1.1

Также сочетание параметров поможет вам более точно отфильтровать сообщения:


GET /email/1/logs?sentSince=2016-08-22T17:42:05.390%2b01:00&generalStatus=DELIVERED HTTP/1.1

Этот запрос имеет два фильтра (параметра) – sentSince and generalStatus, которые будут идентифицированы как единый параметр, и в ответе будет представлен лог сообщений со всеми отправленными и доставленными электронными письмами с момента даты запроса.

Код статуса будет таким же, как и для отправленных сообщений; заголовок ответа кода статуса HTTP будет выглядеть как 200 OK при успешной отправке, и также будут возвращены логи сообщений и отчеты о доставке, но если вы попытаетесь отправить сообщение без авторизации, вы получите ответ с кодом статуса HTTP 401 Unauthorized.

Эта статья поможет вам в процессе интеграции HTTP API, а если вам понадобится дополнительная консультация, посетите наш сайт для разработчиков.

НАЧНИТЕ РАССЫЛКУ EMAIL СЕГОДНЯ

Узнать больше