Project

dashamail

0.0
No release in over a year
DashaMail
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 0.16.0
>= 1.11.0
>= 1.3.6
 Project Readme

DashaMail

API wrapper для DashaMail API.

Оглавление

  1. Установка
    • Установка Ruby
    • Установка Rails
  2. Методы для работы с Адресными Базами
    • Получаем список баз пользователя
    • Добавляем адресную базу
    • Обновляем контактную информацию адресной базы
    • Удаляем адресную базу и всех активных подписчиков в ней
    • Получаем подписчиков в адресной базе с возможность фильтра и регулировки выдачи
    • Получаем список отписавшихся подписчиков как из всех баз, так и в разрезе конкретной адресной базы
    • Получаем список подписчиков, нажавших «Это Спам», как из всех баз, так и в разрезе конкретной базы
    • Получаем активность подписчика в различных рассылках
    • Импорт подписчиков из файла
    • Добавляем подписчика в базу
    • Добавляем несколько подписчиков в базу
    • Редактируем подписчика в базе
    • Удаляем подписчика из базы
    • Отписываем подписчика из базы
    • Перемещаем подписчика в другую адресную базу
    • Копируем подписчика в другую адресную базу
    • Добавить дополнительное поле в адресную базу
    • Обновить настройки дополнительного поля в адресной базе
    • Удалить дополнительное поле из адресной базы
    • Получить последний статус конкретного email в адресных базах
    • Получить историю и результаты импорта адресной базы
    • Проверяет email-адрес на валидность и наличие в черных списках или статусе отписки
  3. Методы для работы с Рассылками
    • Получаем список рассылок пользователя
    • Создаем рассылку
    • Создаем авторассылку
    • Обновляем параметры рассылки
    • Обновляем параметры авторассылки
    • Удаляем кампанию
    • Добавляем вложение
    • Удаляем приложенный файл
    • Получаем html шаблоны
    • Получаем шаблоны из ЛК
    • Добавляем html шаблон
    • Удаляем html шаблон
    • Принудительно вызываем срабатывание авторассылки (при этом она должна быть активна)
    • Создаем мультикампанию
    • Получаем данные о мультикампаниях
    • Обновляем параметры рассылок в рамках мультикампании
    • Получаем папки рассылок
    • Перемещаем рассылку в папку
    • Ставим рассылку на паузу
    • Возобновляем поставленную на паузу рассылку
  4. Методы для работы с Отчетами
    • Список отправленных писем в рассылке
    • Список доставленных писем в рассылке
    • Список открытых писем в рассылке
    • Список писем в рассылке, где адресат перешел по любой ссылке
    • Список писем отписавшихся подписчиков в рассылке
    • Список возвратившихся писем в рассылке
    • Краткая статистка по рассылке
    • Статистика по браузерам, ОС и почтовым клиентам
    • Статистика по регионам открытия
    • Список событий с письмами в рамках рассылки за определенный период
  5. Методы для работы с Аккаунтом
    • Получить текущий баланс аккаунта
    • Получить список всех заданных webhooks или webhook по определенному событию
    • Обновить или добавить webhooks для событий
    • Удаляем вебхуки для событий
    • Отправить письмо подтверждения обратного адреса для использования в ЛК или транзакционных рассылках
    • Получить список всех подтвержденных email-адресов на аккаунте
    • Добавить домен отправки или домен статистики на аккаунт
    • Получить и проверить валидность DNS-записей для настройки домена отправки или статистики
    • Удаляем домен отправки или статистики

Установка

Установка Ruby

$ gem install dashamail

Установка Rails

добавьте в 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