Elastic Email

All the Email marketing and delivery tools you need to communicate with your customers.

Use Elastic Email as your outbound SMTP server to improve your delivery rates and seamlessly scale from 100 emails to 100 milion per month on our ultra-fast global infrastructure.

Design beautiful emails with just a few clicks

Use our engaging pre-designed templates to inspire your campaigns, or create your own beautiful designs with our super easy drag & drop or HTML editor.

Learn more ➜
Elastic review by José V.
"Elasticemail is an excellent service. They have helped me solve every problem I faced while setting up my email marketing application and they´ve always been very kind. I recommend them to everybody." José V. | Developer

Measure your work like a PRO

Our detailed reports and easy to view graphs and logs make it possible to gather and analyze data so you can make informed choices about your email marketing strategy.

Learn more ➜

Make your life easier with our flexible API

Try out our adaptable API and use it to complete or enhance the workflow for your company.

Use it to monitor your sending, browse your contact, edit your data or integrate your CMS or website with us.

Check out our API
$url = 'https://api.elasticemail.com/v2/email/send';
$data = array('from' => 'youremail@yourdomain.com',
    'fromName' => 'Your Company Name',
    'apikey' => '00000000-0000-0000-0000-000000000000',
    'subject' => 'Your Subject',
    'to' => 'recipient1@gmail.com;recipient2@gmail.com',
    'bodyHtml' => '<h1>Html Body</h1>',
    'bodyText' => 'Text Body',
    'isTransactional' => false);

// use key 'http' even if you send the request to https://...
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data)
    )
);

$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { /* Handle error */ }

var_dump($result);
                                              
using System;
using System.Collections.Specialized;
using System.Net;
using System.Text;

namespace ElasticEmailClient
{
    class Program
    {
        static void Main(string[] args)
        {
            NameValueCollection values = new NameValueCollection();
            values.Add("apikey", "00000000-0000-0000-0000-000000000000");
            values.Add("from", "youremail@yourdomain.com");
            values.Add("fromName", "Your Company Name");
            values.Add("to", "recipient1@gmail.com;recipient2@gmail.com");
            values.Add("subject", "Your Subject");
            values.Add("bodyText", "Text Body");
            values.Add("bodyHtml", "<h1>Html Body</h1>");
            values.Add("isTransactional", "true");

            string address = "https://api.elasticemail.com/v2/email/send";
            string response = string.Empty;

            using (WebClient client = new WebClient())
            {
                try
                {
                    byte[] apiResponse = client.UploadValues(address, values);
                    response = Encoding.UTF8.GetString(apiResponse);

                }
                catch (Exception ex)
                {
                    response = "Exception caught: " + ex.Message + "\n" + ex.StackTrace;
                }
            }

            Console.WriteLine(response);
        }
    }
}
                                            
package com.elasticemail.app;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;

public class ElasticClient {
    public static void main(String[] args) {
        try {
            String encoding = "UTF-8";

            String data = "apikey=" + URLEncoder.encode("00000000-0000-0000-0000-000000000000", encoding);
            data += "&from=" + URLEncoder.encode("youremail@yourdomain.com", encoding);
            data += "&fromName=" + URLEncoder.encode("Your Company Name", encoding);
            data += "&subject=" + URLEncoder.encode("Your Subject", encoding);
            data += "&bodyHtml=" + URLEncoder.encode("<h1>Html Body</h1>", encoding);
            data += "&to=" + URLEncoder.encode("recipient1@gmail.com;recipient2@gmail.com", encoding);
            data += "&isTransactional=" + URLEncoder.encode("true", encoding);

            URL url = new URL("https://api.elasticemail.com/v2/email/send");
            URLConnection conn = url.openConnection();
            conn.setDoOutput(true);
            BufferedReader rd;
            String result;
            try (OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream())) {
                wr.write(data);
                wr.flush();
                rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                result = rd.readLine();
            }
            rd.close();

            System.out.println(result);
        }
        catch(IOException e) {
            e.printStackTrace();
        }
    }
}
                                    
                                            
var uploadPostFile = function uploadPostFile() {
	var query = {apikey: '00000000-0000-0000-0000-000000000000', subject: 'Your Subject', from: 'youremail@yourdomain.com', fromName: 'Your Company Name', 
		to: 'recipient1@gmail.com;recipient2@gmail.com', bodyHtml: <h1>Html Body</h1>, bodyText: 'Text Body', isTransactional: 'true'};

	var fd = new FormData();
	var xhr = new XMLHttpRequest();
	var params = "";
	for (var id in query) {
		var val = query[id] + "";
		params += "&" + encodeURIComponent(id) + "=" + encodeURIComponent(val);
	}
	var queryString = "?" + params.substring(1);
	xhr.open('POST', 'https://api.elasticemail.com/v2/email/send' + queryString, true);
	xhr.onload = function (e) {
		var result = e.target.responseText;
		console.log(JSON.parse(result));
	};
	xhr.send(fd);
};                                   
                                              
import requests
import json
from enum import Enum

data = {
	'apikey': '00000000-0000-0000-0000-0000000000000',
	'subject': 'Your Subject',
	'from': 'youremail@yourdomain.com',
	'fromName': 'Your Company Name',
	'to': 'recipient1@gmail.com',
	'bodyHtml': <h1>Html Body</h1>,
	'bodyText': 'Text Body',
	'isTransactional': False}
url = 'https://api.elasticemail.com/v2/email/send'
result = requests.post(url, params = data)

jsonMy = result.json()

if jsonMy['success'] is False:
	return jsonMy['error']
	
return jsonMy['data']                                            
                                              

Get the support you need

We are here for you! Our team of experts is available to help you via email 24/7 every day of the year. If you have questions or concerns, use our support portal and receive a personalized response in usually less than an hour.

Learn more ➜
  • Yves K.

    Great interfaces and a team that actually provides customer service. Elastic Email works with you to help you through any issues or mistakes in your account.

  • Daniel M.

    Everything that i needed was in its place, and the little things that brought us trouble, where solved with the support very fast.

  • Leandro C.

    Elastic Email team has an outstanding customer service, with quick and useful responses whenever I have issues or doubts. The service is stable and easy to use. They get the job done.

Check out our pricing
for businesses like yours
Learn more ➜
Send better emails
with our email experts
Learn more ➜