Документация Email API

Документ содержит сведения о программном интерфейсе сервиса email рассылок (далее - «API»).

Создание API ключа

Создание API ключа доступно по ссылке: https://beta.rusender.ru/api.

Примечание: в beta-версии API RuSender, для активации ключа, необходимо обращаться в службу поддержки через чат в личном кабинете или по ссылке https://beta.rusender.ru/help.

В бесплатном тарифе для отправки по API доступно 100 писем. Для покупки тарифа на количество отправок по API, обратитесь в чат службы поддержки.

Роут отправки письма (с готовым HTML)

  1. POST http://api.beta.rusender.ru/api/v1/external-mails/send

В заголовке «X-Api-Key» необходимо передать строкой ключ API для аутентификации.

Пример тела запроса

  1. {
  2. "mail": {
  3. "to": {
  4. "email": "user@example.com",
  5. "name": "string"
  6. },
  7. "from": {
  8. "email": "user@example.com",
  9. "name": "string"
  10. },
  11. "subject": "string",
  12. "headers": {},
  13. "cc": "string",
  14. "bcc": "string",
  15. "html": "string",
  16. "text": "string"
  17. }
  18. }

Описание полей

  • from* (От) — адрес отправителя письма;

  • to* (Кому) — адрес получателя письма;

  • subject* (Тема) — содержит тему или заголовок письма;

  • cc и bcc — это адрес получателя копии и адрес получателя скрытой копии;

    • cc (Carbon Copy) — это поле «копия» или «отправить копию». Адресат указанный в CC получит копию сообщения, но все получатели смогут видеть, кому еще были отправлены копии сообщения;

    • bcc (Blind Carbon Copy) — это поле «скрытая копия». Это может быть полезно, если вы хотите отправить копию сообщения кому-то без раскрытия его адреса другим адресатам.

  • html*, text — если передать и текстовую и HTML-версию одновременно, то клиент почты получателя будет решать, какую версию отобразить пользователю в зависимости от его настроек и возможностей. Обычно почтовые клиенты отображают в формате HTML, если они поддерживают эту функцию. Наш сервис автоматически генерирует text похожий на html, если text не передан (или передана пустая строка);

  • headers — системные заголовки письма (необязательно поле, для опытных пользователей) https://nodemailer.com/message/custom-headers/.

Примечания

  • Кодировку указать нельзя, всегда используется UTF-8;

  • Запрос принимает любые системные заголовки, но те которые проставляются нами — имеют приоритет, а именно: Return-Path, List-Unsubscribe, Errors-To, X-Complaints-To, Precedence, Feedback-ID, X-SenderName-MailID, X-Mailru-Msgtype, X-Postmaster-Msgtype.

Возможные ответы

Статус Описание
201

Email accepted for sending

Пример:

  1. {
  2. "uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
  3. }
400

Request body format is invalid

Пример:

  1. {
  2. "message": "mail.to.name must be shorter than or equal to 255 characters,mail.from.email must be an email",
  3. "statusCode": 400
  4. }
401 Invalid api-key
402 Is not enough resource on user Balance
403 ExternalMailApiKey not enabled, or user domain is not verify
404 User, UserDomain or ExternalMailApiKey not found
422 Email receiver unsubscribed from this API key mails
503 Service temporarily unavailable

Примеры использования API

PHP

  1. $url = 'http://api.beta.rusender.ru/api/v1/external-mails/send';
  2. $data = array(
  3. 'mail' => array(
  4. 'to' => array(
  5. 'email' => user@example.com'',
  6. 'name' => 'string'
  7. ),
  8. 'from' => array(
  9. 'email' => 'user@example.com',
  10. 'name' => 'string'
  11. ),
  12. 'subject' => 'string',
  13. 'html' => 'string'
  14. )
  15. );
  16. $headers = array(
  17. 'Content-Type: application/json'
  18. 'X-Api-Key: YOUR_API_KEY'
  19. );
  20. $ch = curl_init($url);
  21. curl_setopt($ch, CURLOPT_POST, true);
  22. curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
  23. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  24. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  25. $response = curl_exec($ch);
  26. curl_close($ch);

Python

  1. import requests
  2. import json
  3. url = 'http://api.beta.rusender.ru/api/v1/external-mails/send'
  4. data = {
  5. 'mail': {
  6. 'to': {
  7. 'email': 'user@example.com',
  8. 'name': 'string'
  9. },
  10. 'from': {
  11. 'email': 'user@example.com',
  12. 'name': 'string'
  13. },
  14. 'subject': 'string',
  15. 'html': 'string'
  16. }
  17. }
  18. headers = {
  19. 'X-Api-Key': 'YOUR_API_KEY'
  20. }
  21. response = requests.post(url, json=data, headers=headers)

Node.js

  1. const axios = require('axios');
  2. const url = 'http://api.beta.rusender.ru/api/v1/external-mails/send';
  3. const data = {
  4. mail: {
  5. to: {
  6. email: 'user@example.com',
  7. name : 'string'
  8. },
  9. from: {
  10. email: 'user@example.com',
  11. name: 'string'
  12. },
  13. subject: 'string',
  14. html: 'string'
  15. }
  16. };
  17. const headers = {
  18. 'X-Api-Key': 'YOUR_API_KEY'
  19. };
  20. axios.post(url, data, { headers })
  21. .then(response => {
  22. // Обработка ответа API
  23. })
  24. .catch(error => {
  25. // Обработка ошибки
  26. });

JavaScript Frontend

  1. const url = 'http://api.beta.rusender.ru/api/v1/external-mails/send';
  2. const data = {
  3. mail: {
  4. to: {
  5. email: 'user@example.com',
  6. name: 'string'
  7. },
  8. from: {
  9. email: 'user@example.com',
  10. name: 'string'
  11. },
  12. subject: 'string',
  13. html: 'string'
  14. }
  15. };
  16. const headers = {
  17. 'Content-Type': 'application/json',
  18. 'X-Api-Key': 'YOUR_API_KEY'
  19. };
  20. fetch(url, {
  21. method: 'POST',
  22. headers: headers,
  23. body: JSON.stringify(data)
  24. })
  25. .then(response => response.json())
  26. .then(data => {
  27. // Обработка ответа API
  28. })
  29. .catch(error => {
  30. // Обработка ошибки
  31. });

Универсальная платформа
для быстрого достижения ваших целей

Попробовать бесплатно