MailerSend Ruby SDK [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE.txt) - [Installation](#installation) - [Setup](#setup) - [Usage](#usage) - [Email](#email) - [Send an email](#send-an-email) - [Add CC, BCC recipients](#add-cc-bcc-recipients) - [Send a template-based email](#send-a-template-based-email) - [Tokens](#tokens) - [Create a token](#create-a-token) - [Update a token](#update-a-token) - [Delete a token](#delete-a-token) - [Advanced personalization](#advanced-personalization) - [Simple personalization](#simple-personalization) - [Send email with attachment](#send-email-with-attachment) - [Activity](#activity) - [Get a list of activities](#get-a-list-of-activities) - [Analytics](#analytics) - [Activity data by date](#activity-data-by-date) - [Opens by country](#opens-by-country) - [Opens by user-agent name](#opens-by-user-agent-name) - [Opens by reading environment](#opens-by-reading-environment) - [Domains](#domains) - [Get a list of domains](#get-a-list-of-domains) - [Get a single domain](#get-a-single-domain) - [Delete a domain](#delete-a-domain) - [Update domain settings](#update-domain-settings) - [Messages](#messages) - [Get a list of messages](#get-a-list-of-messages) - [Get info for a single message](#get-info-for-a-single-message) - [Recipients](#recipients) - [Get recipients](#get-recipients) - [Get a single recipient](#get-a-single-recipient) - [Delete a recipient](#delete-a-recipient) - [Webhooks](#webhooks) - [List webhooks](#list-webhooks) - [Get a webhook](#get-a-webhook) - [Create a webhook](#create-a-webhook) - [Update a webhook](#update-a-webhook) - [Support and Feedback](#support-and-feedback) - [License](#license) # Installation ## Setup ```bash gem install mailersend-ruby ``` You will have to initalize it in your Ruby file with `require "mailersend-ruby"`. # Usage This SDK requires that you either have `.env` file with `API_TOKEN` env variable or that your variable is enabled system wide (useful for Docker/Kubernetes). The example of how `API_TOKEN` should look like is in `.env.example`. ## Email ### Send an email ```ruby require "mailersend-ruby" # Intialize the email class ms_email = Mailersend::Email.new # Add parameters ms_email.add_recipients("email" => "ron@parksandrec.com", "name" => "Ron") ms_email.add_recipients("email" => "leslie@parksandrec.com", "name" => "Leslie") ms_email.add_from("email" => "april@parksandrec.com", "name" => "April") ms_email.add_subject("Time") ms_email.add_text("Time is money, money is power, power is pizza, and pizza is knowledge. Let's go.") ms_email.add_html("Time is money, money is power, power is pizza, and pizza is knowledge. Let's go.") # Send the email ms_email.send ``` ### Add CC, BCC recipients ```ruby require "mailersend-ruby" # Intialize the email class ms_email = Mailersend::Email.new # Add parameters ms_email.add_recipients("email" => "ron@parksandrec.com", "name" => "Ron") ms_email.add_recipients("email" => "leslie@parksandrec.com", "name" => "Leslie") ms_email.add_cc("email" => "chris@parksandrec.com", "name" => "Chris") ms_email.add_bcc("email" => "andy@parksandrec.com", "name" => "Andy") ms_email.add_from("email" => "april@parksandrec.com", "name" => "April") ms_email.add_subject("Time") ms_email.add_text("Time is money, money is power, power is pizza, and pizza is knowledge. Let's go.") ms_email.add_html("Time is money, money is power, power is pizza, and pizza is knowledge. Let's go.") # Send the email ms_email.send ``` ### Send a template-based email ```ruby require "mailersend-ruby" # Intialize the email class ms_email = Mailersend::Email.new # Add parameters ms_email.add_recipients("email" => "ron@parksandrec.com", "name" => "Ron") ms_email.add_recipients("email" => "leslie@parksandrec.com", "name" => "Leslie") ms_email.add_from("email" => "april@parksandrec.com", "name" => "April") ms_email.add_subject("Time") ms_email.add_template_id(12415125) # Send the email ms_email.send ``` ## Tokens ### Create a token ```ruby require "mailersend-ruby" ms_tokens = Mailersend::Tokens.new ms_tokens.create(name: "Very nice token", scopes: %w[ email_full domains_read ], domain_id: "yourdomainid") ``` ### Update a token ```ruby require "mailersend-ruby" ms_tokens = Mailersend::Tokens.new ms_tokens.update(token_id: "d2220fx04", status: "paused") ``` ### Delete a token ```ruby require "mailersend-ruby" ms_tokens = Mailersend::Tokens.new ms_tokens.delete(token_id: "d2220fx04") ``` ### Advanced personalization ```ruby require "mailersend-ruby" # Intialize the email class ms_email = Mailersend::Email.new # Add parameters ms_email.add_recipients("email" => "ron@parksandrec.com", "name" => "Ron") ms_email.add_from("email" => "april@parksandrec.com", "name" => "April") ms_email.add_subject("Time {{ test }}") ms_email.add_text("{{ test }}Time is money, money is power, power is pizza, and pizza is knowledge. Let's go.") ms_email.add_html("{{ test }}Time is money, money is power, power is pizza, and pizza is knowledge. Let's go.") personalization = { email: 'ron@parksandrec.com', data: { test: 'Test Value' } } ms_email.add_personalization(personalization) ms_email.send ``` ### Simple personalization ```ruby require "mailersend-ruby" # Intialize the email class ms_email = Mailersend::Email.new # Add parameters ms_email.add_recipients("email" => "ron@parksandrec.com", "name" => "Ron") ms_email.add_from("email" => "april@parksandrec.com", "name" => "April") ms_email.add_subject("Time {$test}") ms_email.add_text("{$test} Time is money, money is power, power is pizza, and pizza is knowledge. Let's go.") ms_email.add_html("{$test} Time is money, money is power, power is pizza, and pizza is knowledge. Let's go.") variables = { email: 'ron@parksandrec.com', substitutions: [ { var: 'test', value: 'Test Value' } ] } ms_email.add_variables(variables) ms_email.send ``` ### Send email with attachment ```ruby require "mailersend-ruby" # Intialize the email class ms_email = Mailersend::Email.new # Add parameters ms_email.add_recipients("email" => "ron@parksandrec.com", "name" => "Ron") ms_email.add_recipients("email" => "leslie@parksandrec.com", "name" => "Leslie") ms_email.add_cc("email" => "chris@parksandrec.com", "name" => "Chris") ms_email.add_bcc("email" => "andy@parksandrec.com", "name" => "Andy") ms_email.add_from("email" => "april@parksandrec.com", "name" => "April") ms_email.add_subject("Time") ms_email.add_text("Time is money, money is power, power is pizza, and pizza is knowledge. Let's go.") ms_email.add_html("Time is money, money is power, power is pizza, and pizza is knowledge. Let's go.") # You can add one or multiple attachments ms.add_attachment(content: "/Users/Jerry/Desktop/doc.pdf", filename: "doc.pdf") ms.add_attachment(content: "/Users/Jerry/Desktop/pic.png", filename: "pic.png") ms_email.send ``` ## Activity ### Get a list of activities ```ruby require "mailersend-ruby" ms_activity = Mailersend::Activity.new ms_activity.get(domain_id: "xxx2241ll", page: 3, limit: 5, date_from: 1620643567, date_to: 1623321967) ``` ## Analytics ### Activity data by date ```ruby require "mailersend-ruby" ms_analytics = Mailersend::Analytics.new ms_analytics.date(date_from: 1620643567, date_to: 1623321967, events: %w[sent queued]) ``` ### Opens by country ```ruby require "mailersend-ruby" ms_analytics = Mailersend::Analytics.new ms_analytics.country(date_from: 1620643567, date_to: 1623321967) ``` ### Opens by user-agent name ```ruby require "mailersend-ruby" ms_analytics = Mailersend::Analytics.new ms_analytics.ua_name(date_from: 1620643567, date_to: 1623321967) ``` ### Opens by reading environment ```ruby require "mailersend-ruby" ms_analytics = Mailersend::Analytics.new ms_analytics.ua_type(date_from: 1620643567, date_to: 1623321967) ``` ## Domains ### Get a list of domains ```ruby require "mailersend-ruby" ms_domains = Mailersend::Domains.new ms_domains.list ``` ### Get a single domain ```ruby require "mailersend-ruby" ms_domains = Mailersend::Domains.new ms_domains.single(domain_id: "idofdomain12412") ``` ### Delete a domain ```ruby require "mailersend-ruby" ms_domains = Mailersend::Domains.new ms_domains.delete(domain_id: "idofdomain12412") ``` ### Update domain settings ```ruby require "mailersend-ruby" ms_domains = Mailersend::Domains.new ms_domains.settings(domain_id: "idofdomain12412", track_clicks: true, track_unsubscribe: false) ``` ## Messages ### Get a list of messages ```ruby require "mailersend-ruby" ms_messages = Mailersend::Messages.new ms_messages.list(page: 1, limit: 10) ``` ### Get info for a single message ```ruby require "mailersend-ruby" ms_messages = Mailersend::Messages.new ms_messages.single(message_id: "mess11454") ``` ## Recipients ### Get recipients ```ruby require "mailersend-ruby" ms_recipients = Mailersend::Recipients.new ms_recipients.list(page: 1, limit: 10) ``` ### Get a single recipient ```ruby require "mailersend-ruby" ms_recipients = Mailersend::Recipients.new ms_recipients.single(recipient_id: "id124") ``` ### Delete a recipient ```ruby require "mailersend-ruby" ms_recipients = Mailersend::Recipients.new ms_recipients.delete(recipient_id: "id124") ``` ## Webhooks ### List webhooks ```ruby require "mailersend-ruby" ms_webhooks = Mailersend::Webhooks.new ms_webhooks.list(domain_id: "xxx2241ll") ``` ### Get a webhook ```ruby require "mailersend-ruby" ms_webhooks = Mailersend::Webhooks.new ms_webhooks.single(webhook_id: "zzz2241ll") ``` ### Create a webhook ```ruby require "mailersend-ruby" ms_webhooks = Mailersend::Webhooks.new ms_webhooks.create(domain_id: "xxx2241ll", url: "https://domain.com/hook", name: "Webhook", events: ["activity.sent", "activity.delivered"], enabled: true) ``` ### Update a webhook ```ruby require "mailersend-ruby" ms_webhooks = Mailersend::Webhooks.new ms_webhooks.update(webhook_id: "zzz2241ll", enabled: false) ``` # Support and Feedback In case you find any bugs, submit an issue directly here in GitHub. You are welcome to create SDK for any other programming language. If you have any troubles using our API or SDK free to contact our support by email [info@mailersend.com](mailto:info@mailersend.com) The official documentation is at [https://developers.mailersend.com](https://developers.mailersend.com) # License [The MIT License (MIT)](LICENSE)