Создание API ключа
Создание API ключа доступно по ссылке: https://beta.rusender.ru/api.
Примечание: в beta-версии API RuSender, для активации ключа, необходимо обращаться в службу поддержки через чат в личном кабинете или по ссылке https://beta.rusender.ru/help.
В бесплатном тарифе для отправки по API доступно 100 писем. Для покупки тарифа на количество отправок по API, обратитесь в чат службы поддержки.
Роут отправки письма (с готовым HTML)
- POST http://api.beta.rusender.ru/api/v1/external-mails/send
В заголовке «X-Api-Key
» необходимо передать строкой ключ API для аутентификации.
Пример тела запроса
- {
- "mail": {
- "to": {
- "email": "user@example.com",
- "name": "string"
- },
- "from": {
- "email": "user@example.com",
- "name": "string"
- },
- "subject": "string",
- "headers": {},
- "cc": "string",
- "bcc": "string",
- "html": "string",
- "text": "string"
- }
- }
Описание полей
-
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 Пример:
|
400 |
Request body format is invalid Пример:
|
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
- $url = 'http://api.beta.rusender.ru/api/v1/external-mails/send';
- $data = array(
- 'mail' => array(
- 'to' => array(
- 'email' => user@example.com'',
- 'name' => 'string'
- ),
- 'from' => array(
- 'email' => 'user@example.com',
- 'name' => 'string'
- ),
- 'subject' => 'string',
- 'html' => 'string'
- )
- );
- $headers = array(
- 'Content-Type: application/json'
- 'X-Api-Key: YOUR_API_KEY'
- );
- $ch = curl_init($url);
- curl_setopt($ch, CURLOPT_POST, true);
- curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- $response = curl_exec($ch);
- curl_close($ch);
Python
- import requests
- import json
- url = 'http://api.beta.rusender.ru/api/v1/external-mails/send'
- data = {
- 'mail': {
- 'to': {
- 'email': 'user@example.com',
- 'name': 'string'
- },
- 'from': {
- 'email': 'user@example.com',
- 'name': 'string'
- },
- 'subject': 'string',
- 'html': 'string'
- }
- }
- headers = {
- 'X-Api-Key': 'YOUR_API_KEY'
- }
- response = requests.post(url, json=data, headers=headers)
Node.js
- const axios = require('axios');
- const url = 'http://api.beta.rusender.ru/api/v1/external-mails/send';
- const data = {
- mail: {
- to: {
- email: 'user@example.com',
- name : 'string'
- },
- from: {
- email: 'user@example.com',
- name: 'string'
- },
- subject: 'string',
- html: 'string'
- }
- };
- const headers = {
- 'X-Api-Key': 'YOUR_API_KEY'
- };
- axios.post(url, data, { headers })
- .then(response => {
- // Обработка ответа API
- })
- .catch(error => {
- // Обработка ошибки
- });
JavaScript Frontend
- const url = 'http://api.beta.rusender.ru/api/v1/external-mails/send';
- const data = {
- mail: {
- to: {
- email: 'user@example.com',
- name: 'string'
- },
- from: {
- email: 'user@example.com',
- name: 'string'
- },
- subject: 'string',
- html: 'string'
- }
- };
- const headers = {
- 'Content-Type': 'application/json',
- 'X-Api-Key': 'YOUR_API_KEY'
- };
- fetch(url, {
- method: 'POST',
- headers: headers,
- body: JSON.stringify(data)
- })
- .then(response => response.json())
- .then(data => {
- // Обработка ответа API
- })
- .catch(error => {
- // Обработка ошибки
- });