DashaMail
API wrapper для DashaMail API.
Оглавление
- Установка
- Установка Ruby
- Установка Rails
- Методы для работы с Адресными Базами
- Получаем список баз пользователя
- Добавляем адресную базу
- Обновляем контактную информацию адресной базы
- Удаляем адресную базу и всех активных подписчиков в ней
- Получаем подписчиков в адресной базе с возможность фильтра и регулировки выдачи
- Получаем список отписавшихся подписчиков как из всех баз, так и в разрезе конкретной адресной базы
- Получаем список подписчиков, нажавших «Это Спам», как из всех баз, так и в разрезе конкретной базы
- Получаем активность подписчика в различных рассылках
- Импорт подписчиков из файла
- Добавляем подписчика в базу
- Добавляем несколько подписчиков в базу
- Редактируем подписчика в базе
- Удаляем подписчика из базы
- Отписываем подписчика из базы
- Перемещаем подписчика в другую адресную базу
- Копируем подписчика в другую адресную базу
- Добавить дополнительное поле в адресную базу
- Обновить настройки дополнительного поля в адресной базе
- Удалить дополнительное поле из адресной базы
- Получить последний статус конкретного email в адресных базах
- Получить историю и результаты импорта адресной базы
- Проверяет email-адрес на валидность и наличие в черных списках или статусе отписки
- Методы для работы с Рассылками
- Получаем список рассылок пользователя
- Создаем рассылку
- Создаем авторассылку
- Обновляем параметры рассылки
- Обновляем параметры авторассылки
- Удаляем кампанию
- Добавляем вложение
- Удаляем приложенный файл
- Получаем html шаблоны
- Получаем шаблоны из ЛК
- Добавляем html шаблон
- Удаляем html шаблон
- Принудительно вызываем срабатывание авторассылки (при этом она должна быть активна)
- Создаем мультикампанию
- Получаем данные о мультикампаниях
- Обновляем параметры рассылок в рамках мультикампании
- Получаем папки рассылок
- Перемещаем рассылку в папку
- Ставим рассылку на паузу
- Возобновляем поставленную на паузу рассылку
- Методы для работы с Отчетами
- Список отправленных писем в рассылке
- Список доставленных писем в рассылке
- Список открытых писем в рассылке
- Список писем в рассылке, где адресат перешел по любой ссылке
- Список писем отписавшихся подписчиков в рассылке
- Список возвратившихся писем в рассылке
- Краткая статистка по рассылке
- Статистика по браузерам, ОС и почтовым клиентам
- Статистика по регионам открытия
- Список событий с письмами в рамках рассылки за определенный период
- Методы для работы с Аккаунтом
- Получить текущий баланс аккаунта
- Получить список всех заданных webhooks или webhook по определенному событию
- Обновить или добавить webhooks для событий
- Удаляем вебхуки для событий
- Отправить письмо подтверждения обратного адреса для использования в ЛК или транзакционных рассылках
- Получить список всех подтвержденных email-адресов на аккаунте
- Добавить домен отправки или домен статистики на аккаунт
- Получить и проверить валидность DNS-записей для настройки домена отправки или статистики
- Удаляем домен отправки или статистики
$ gem install dashamail
добавьте в Gemfile:
gem 'dashamail'
и запустите bundle install
.
Затем:
rails g dashamail:install
Требования
Необходимо получить api_key
Использование Rails
В файл config/dashamail.yml
вставьте ваши данные
Использование Ruby
Создайте экземпляр объекта Dashamail::Request
:
dasha = Dashamail::Request.new(api_key: 123)
Вы можете изменять api_key
, timeout
, open_timeout
, faraday_adapter
, proxy
, ssl_options
, symbolize_keys
, logger
, и debug
:
Dashamail::Request.api_key = "123"
Dashamail::Request.timeout = 15
Dashamail::Request.open_timeout = 15
Dashamail::Request.symbolize_keys = true
Dashamail::Request.debug = false
Dashamail::Request.ssl_options = { verify: false }
Либо в файле config/initializers/dashamail.rb
для Rails.
Debug Logging
Pass debug: true
to enable debug logging to STDOUT.
dasha = Dashamail::Request.new(api_key: "123", debug: true)
Custom logger
Ruby Logger.new
is used by default, but it can be overrided using:
dasha = Dashamail::Request.new(api_key: "123", debug: true, logger: MyLogger.new)
Logger can be also set by globally:
Dashamail::Request.logger = MyLogger.new
Примеры
response = Dashamail::Request.lists.get.retrieve!
lists = response.data
body = {
name: "Test"
}
response = Dashamail::Request.lists.add.create!(body: body)
list_id = response.data[:list_id]
body = {
list_id: list_id,
name: "Test renamed"
}
response = Dashamail::Request.lists.update.create!(body: body)
result = response.data
body = {
list_id: list_id
}
response = Dashamail::Request.lists.delete.create!(body: body)
result = response.data
params = {
list_id: list_id
}
response = Dashamail::Request.lists.get_members.retrieve!(params: params)
members = response.data
params = {
list_id: list_id
}
response = Dashamail::Request.lists.get_unsubscribed.retrieve!(params: params)
unsubscribed_members = response.data
params = {
list_id: list_id
}
response = Dashamail::Request.lists.get_complaints.retrieve!(params: params)
complaints = response.data
params = {
email: "pavel.osetrov@me.com"
}
response = Dashamail::Request.lists.member_activity.retrieve!(params: params)
activity = response.data
body = {
list_id: list_id,
file: "https://example.com/file.xls",
email: 0,
type: "xls"
}
response = Dashamail::Request.lists.upload.create!(body: body)
result = response.data
body = {
list_id: list_id,
email: "pavel.osetrov@me.com"
}
response = Dashamail::Request.lists.add_member.create!(body: body)
member_id = response.data[:member_id]
body = {
list_id: list_id,
batch: "pavel.osetrov@me.com;retail.deppa@yandex.ru",
update: true
}
response = Dashamail::Request.lists.add_member_batch.create!(body: body)
result = response.data
body = {
list_id: list_id,
email: "pavel.osetrov@me.com",
gender: 'm'
}
response = Dashamail::Request.lists.update_member.create!(body: body)
result = response.data
body = {
member_id: member_id
}
response = Dashamail::Request.lists.delete_member.create!(body: body)
result = response.data
body = {
email: "pavel.osetrov@me.com"
}
response = Dashamail::Request.lists.unsubscribe_member.create!(body: body)
result = response.data
body = {
member_id: member_id,
list_id: list_id
}
response = Dashamail::Request.lists.move_member.create!(body: body)
result = response.data
body = {
member_id: member_id,
list_id: list_id
}
response = Dashamail::Request.lists.copy_member.create!(body: body)
result = response.data
body = {
list_id: list_id,
type: 'text',
title: 'Город'
}
response = Dashamail::Request.lists.add_merge.create!(body: body)
result = response.data
body = {
list_id: list_id,
merge_id: 1,
req: 'off'
}
response = Dashamail::Request.lists.update_merge.create!(body: body)
result = response.data
body = {
list_id: list_id,
merge_id: 1
}
response = Dashamail::Request.lists.delete_merge.create!(body: body)
result = response.data
params = {
email: "pavel.osetrov@me.com"
}
response = Dashamail::Request.lists.last_status.retrieve!(params: params)
status = response.data
params = {
list_id: list_id
}
response = Dashamail::Request.lists.get_import_history.retrieve!(params: params)
import_history = response.data
params = {
email: "pavel.osetrov@me.com"
}
response = Dashamail::Request.lists.check_email.retrieve!(params: params)
valid = response.data
response = Dashamail::Request.campaigns.get.retrieve!
campaigns = response.data
body = {
list_id: list_id,
name: "Campaigns test"
}
response = Dashamail::Request.campaigns.create.create!(body: body)
campaign_id = response.data[:campaign_id]
body = {
list_id: list_id,
name: "Auto campaigns test"
}
response = Dashamail::Request.campaigns.create_auto.create!(body: body)
campaign_id = response.data[:campaign_id]
body = {
campaign_id: campaign_id,
name: "Campaigns test renamed"
}
response = Dashamail::Request.campaigns.update.create!(body: body)
result = response.data
body = {
campaign_id: campaign_id,
name: "Auto campaigns test renamed"
}
response = Dashamail::Request.campaigns.update_auto.create!(body: body)
result = response.data
body = {
campaign_id: campaign_id
}
response = Dashamail::Request.campaigns.delete.create!(body: body)
result = response.data
body = {
campaign_id: campaign_id,
file: "https://storage.deppa.ru/uploads/logo.jpg",
name: "logo.jpg"
}
response = Dashamail::Request.campaigns.attach.create!(body: body)
attach_id = response.data[:id]
body = {
campaign_id: campaign_id,
id: attach_id
}
response = Dashamail::Request.campaigns.delete_attachment.create!(body: body)
result = response.data
response = Dashamail::Request.campaigns.get_templates.retrieve!
templates = response.data
response = Dashamail::Request.campaigns.get_saved_templates.retrieve!
templates = response.data
body = {
name: "Hello",
template: "<h1>Hello world!</h1>"
}
response = Dashamail::Request.campaigns.add_template.create!(body: body)
template_id = response.data[:id]
body = {
id: template_id
}
response = Dashamail::Request.campaigns.delete_template.create!(body: body)
result = response.data
body = {
campaign_id: campaign_id,
member_id: member_id,
delay: 3600
}
response = Dashamail::Request.campaigns.force_auto.create!(body: body)
result = response.data
body = {
data: [{
list_id: list_id,
name: "Campaigns test"
}]
}
response = Dashamail::Request.campaigns.multi_create.create!(body: body)
result = response.data
response = Dashamail::Request.campaigns.multi_get.retrieve!
result = response.data
body = {
campaign_id: campaign_id,
data: [{
list_id: list_id,
name: "Campaigns test"
}]
}
response = Dashamail::Request.campaigns.multi_update.create!(body: body)
result = response.data
response = Dashamail::Request.campaigns.get_folders.retrieve!
result = response.data
body = {
campaign_id: campaign_id,
folder_id: folder_id
}
response = Dashamail::Request.campaigns.move_to_folder.create!(body: body)
result = response.data
body = {
campaign_id: campaign_id
}
response = Dashamail::Request.campaigns.pause.create!(body: body)
result = response.data
body = {
campaign_id: campaign_id
}
response = Dashamail::Request.campaigns.restart_paused.create!(body: body)
result = response.data
params = {
campaign_id: campaign_id
}
response = Dashamail::Request.reports.sent.retrieve!(params: params)
reports = response.data
params = {
campaign_id: campaign_id
}
response = Dashamail::Request.reports.delivered.retrieve!(params: params)
reports = response.data
params = {
campaign_id: campaign_id
}
response = Dashamail::Request.reports.opened.retrieve!(params: params)
reports = response.data
params = {
campaign_id: campaign_id
}
response = Dashamail::Request.reports.clicked.retrieve!(params: params)
reports = response.data
params = {
campaign_id: campaign_id
}
response = Dashamail::Request.reports.unsubscribed.retrieve!(params: params)
reports = response.data
params = {
campaign_id: campaign_id
}
response = Dashamail::Request.reports.bounced.retrieve!(params: params)
reports = response.data
params = {
campaign_id: campaign_id
}
response = Dashamail::Request.reports.summary.retrieve!(params: params)
reports = response.data
params = {
campaign_id: campaign_id
}
response = Dashamail::Request.reports.clients.retrieve!(params: params)
reports = response.data
params = {
campaign_id: campaign_id
}
response = Dashamail::Request.reports.geo.retrieve!(params: params)
reports = response.data
params = {
campaign_id: campaign_id
}
response = Dashamail::Request.reports.events.retrieve!(params: params)
reports = response.data
response = Dashamail::Request.account.get_balance.retrieve!
result = response.data
response = Dashamail::Request.account.get_webhooks.retrieve!
result = response.data
body = {
open: "https://example.com/webhooks/open"
}
response = Dashamail::Request.account.add_webhooks.create!(body: body)
result = response.data
body = {
event_name: "open"
}
response = Dashamail::Request.account.delete_webhooks.create!(body: body)
result = response.data
body = {
email: "pavel.osetrov@me.com"
}
response = Dashamail::Request.account.confirm_from_email.create!(body: body)
result = response.data
response = Dashamail::Request.account.get_confirmed.retrieve!
result = response.data
body = {
domain: "example.com"
}
response = Dashamail::Request.account.add_domain.create!(body: body)
result = response.data
body = {
domain: "example.com"
}
response = Dashamail::Request.account.check_domains.create!(body: body)
result = response.data
body = {
domain: "example.com"
}
response = Dashamail::Request.account.delete_domain.create!(body: body)
result = response.data