Switch from Mailchimp Transactional to Zoho ZeptoMail in just 5 minutes.

Simplify your transition to ZeptoMail by modifying only one line of your current code.

What makes Zoho ZeptoMail special?

Mailchimp Transactional (formerly Mandrill) is designed for developers to send emails. It’s used for sending marketing and transactional emails, with transactional emails being an add-on feature for Standard and Premium plans.

Why should you pay for two different services when your main focus is to send transactional emails?

With Zoho ZeptoMail, you pay only for what you use. ZeptoMail is exclusively built to send transactional emails ensuring fast and secure delivery. Unlike Mailchimp Transactional, sending transactional emails is our primary focus, not just an add-on.

Get started with Zoho ZeptoMail.

Use this quick roadmap to make a seamless transition from Mailchimp Transactional to Zoho ZeptoMail.

Step

Sign up for Zoho ZeptoMail.

  • Sign up for ZeptoMail by entering the relevant credentials.

  • Once you sign up, you’ll receive a verification email to validate your email address.

  • After you verify your account, you’ll be prompted to enable two-factor authentication for your account. You can choose from the list of TFA options to enable it.

Step

Add and verify your domain

Step

Modify one line of your existing code.

  • You can easily switch from Mailchimp Transactional to ZeptoMail by just changing this one line of your API code.

  • Send an API request to https://api.zeptomail.com/v1.1/md/email

  • To authorize your request, you need to add the Send Mail token in the header section.

Step

Send transactional emails from ZeptoMail

  • Welcome to ZeptoMail. You can now start sending your transactional emails. Happy email sending!

Sign up for Zoho ZeptoMail
Domain addition and verification
 
       
copy

curl "https://api.zeptomail.com/v1.1/md/email" \
        -X POST \
        -H "Accept: application/json" \
        -H "Content-Type: application/json" \
        -H "Authorization: Zoho-enczapikey ***" \
        -d '{ 
	"headers" : {"key": "headers"},
	"message": {
	  "subject": "Your Example Order Confirmation",
	  "html": "<h1> This is a Test email </h1>",
	  "from_email": "rebecca@example.in",
	  "from_name": "Rebecca",
	  "to": [
	      {"email": "john@example.com", "name": "John", "type": "to"},
	      {"email": "julia@example.com", "name": "Julia", "type": "to"},
	      {"email": "jane@example.com", "name": "Jane", "type": "cc"},
	      {"email": "jim@example.com", "name": "Jim", "type": "bcc"}
	  ],
	  "attachments": [
	     {"name": "attachment.pdf", "type": "text/pdf", "content": "[base64 content]"}
	   ],
	  "images": [
	    {"name": "Image name", "type": "image/png", "content": "[base64 content]"}
	  ]
        }}'
                                            

fetch("https://api.zeptomail.com/v1.1/md/email", {
    body: JSON.stringify({
        "message": {
          "subject": "Your Example Order Confirmation",
          "html": "<h1> This is a Test email </h1>",
          "from_email": "rebecca@example.in",
          "from_name": "Rebecca",
          "to": [
            {
              "email": "john@example.com",
              "name": "John",
              "type": "to"
            },
            {
              "email": "julia@example.com",
              "name": "Julia",
              "type": "to"
            },
            {
              "email": "jane@example.com",
              "name": "Jane",
              "type": "cc"
            },
            {
              "email": "jim@example.com",
              "name": "Jim",
              "type": "bcc"
            }
          ],
          "attachments": [
            {
              "name": "attachment.pdf",
              "type": "text/pdf",
              "content": "[base64 content]"
            }
          ],
          "images": [
            {
              "name": "Image name",
              "type": "image/png",
              "content": "[base64 content]"
            }
          ]
        }
      }),
    method: "POST",
    headers: {
        "Authorization": "Zoho-enczapikey ***",
        "Accept": "application/json",
        "Content-Type": "application/json"
    }
}).then(async (resp) => {
    let result = await resp.json()
    console.log(result)
}).catch((err) => {
    console.log(err)
})
                                            

using System;
using System.Net;
using System.Text;
using System.IO;
using System.Net.Http;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace Rextester
{
    public class Program
    {
        public static void Main(string[] args)
        {
            System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
            var baseAddress = "https://api.zeptomail.com/v1.1/md/email";

            var http = (HttpWebRequest)WebRequest.Create(new Uri(baseAddress));
            http.Accept = "application/json";
            http.ContentType = "application/json";
            http.Method = "POST";
            http.PreAuthenticate = true;
            http.Headers.Add("Authorization", "Zoho-enczapikey ***");
            JObject parsedContent = JObject.Parse("{
               "headers": {"key": "headers"},
	       "message": {
		  "subject": "Your Example Order Confirmation",
		  "html": "<h1> This is a Test email </h1>",
		  "from_email": "rebecca@example.in",
		  "from_name": "Rebecca",
		  "to": [
		    {
		      "email": "john@example.com",
		      "name": "John",
		      "type": "to"
		    },
		    {
		      "email": "julia@example.com",
		      "name": "Julia",
		      "type": "to"
		    },
		    {
		      "email": "jane@example.com",
		      "name": "Jane",
		      "type": "cc"
		    },
		    {
		      "email": "jim@example.com",
		      "name": "Jim",
		      "type": "bcc"
		    }
		  ],
		  "attachments": [
		    {
		      "name": "attachment.pdf",
		      "type": "text/pdf",
		      "content": "[base64 content]"
		    }
		  ],
		  "images": [
		    {
		      "name": "Image name",
		      "type": "image/png",
		      "content": "[base64 content]"
		    }
		  ]
		}
            }");
            Console.WriteLine (parsedContent.ToString());
            ASCIIEncoding encoding = new ASCIIEncoding();
            Byte[] bytes = encoding.GetBytes(parsedContent.ToString());

            Stream newStream = http.GetRequestStream();
            newStream.Write(bytes, 0, bytes.Length);
            newStream.Close();

            var response = http.GetResponse();

            var stream = response.GetResponseStream();
            var sr = new StreamReader(stream);
            var content = sr.ReadToEnd();
            Console.WriteLine (content);
        }
    }
}
                                            

import requests

url = "https://api.zeptomail.com/v1.1/md/email"

payload = "{ \"headers\" : { \"key\" : \"headers\" }, \"message\": { \"subject\": \"Your Example Order Confirmation\", \"html\": \"<h1> This is a Test email </h1>\", \"from_email\": \"rebecca@example.in\", \"from_name\": \"Rebecca\", \"to\": [{\"email\": \"john@example.com\", \"name\": \"John\", \"type\": \"to\"}, {\"email\": \"julia@example.com\", \"name\": \"Julia\", \"type\": \"to\"}, {\"email\": \"jane@example.com\", \"name\": \"Jane\", \"type\": \"cc\"}, {\"email\": \"jim@example.com\", \"name\": \"Jim\", \"type\": \"bcc\"}], \"attachments\": [{\"name\": \"attchment.pdf\", \"type\": \"text/pdf\", \"content\": [base64 content]}], \"images\": [{\"name\": \"Image name\", \"type\": \"image/png\", \"content\": \"[base64 content]\"}]} }"
headers = {
'accept': "application/json",
'content-type': "application/json",
'authorization': "Zoho-enczapikey ***",
}

response = requests.request("POST", url, data=payload, headers=headers)

print(response.text)
                                            

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.zeptomail.com/v1.1/md/email",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => '{
       "headers": {"key": "headers"},
       "message": {
          "subject": "Your Example Order Confirmation",
          "html": "<h1> This is a Test email </h1>",
          "from_email": "rebecca@example.in",
          "from_name": "Rebecca",
          "to": [
            {
              "email": "john@example.com",
              "name": "John",
              "type": "to"
            },
            {
              "email": "julia@example.com",
              "name": "Julia",
              "type": "to"
            },
            {
              "email": "jane@example.com",
              "name": "Jane",
              "type": "cc"
            },
            {
              "email": "jim@example.com",
              "name": "Jim",
              "type": "bcc"
            }
          ],
          "attachments": [
            {
              "name": "attachment.pdf",
              "type": "text/pdf",
              "content": "[base64 content]"
            }
          ],
          "images": [
            {
              "name": "Image name",
              "type": "image/png",
              "content": "[base64 content]"
            }
          ]
        }
    }'
    CURLOPT_HTTPHEADER => array(
        "accept: application/json",
        "authorization: Zoho-enczapikey ***",
        "cache-control: no-cache",
        "content-type: application/json",
    ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
    echo "cURL Error #:" . $err;
} else {
    echo $response;
}
?>
                                            

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.json.JSONObject;

public class JavaSendapi {
    public static void main(String[] args) throws Exception {
        String postUrl = "https://api.zeptomail.com/v1.1/md/email";
        BufferedReader br = null;
        HttpURLConnection conn = null;
        String output = null;
        StringBuffer sb = new StringBuffer();
        try {
            URL url = new URL(postUrl);
            conn = (HttpURLConnection) url.openConnection();
            conn.setDoOutput(true);
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Content-Type", "application/json");
            conn.setRequestProperty("Accept", "application/json");
            conn.setRequestProperty("Authorization", "Zoho-enczapikey ***");
            JSONObject object = new JSONObject("
		    \"headers\" : { \"key\" : \"headers\" }, 
		    \"message\": { \"subject\": \"Your Example Order Confirmation\", 
			    \"html\": \"<h1> This is a Test email </h1>\", 
			    \"from_email\": \"rebecca@example.in\", 
			    \"from_name\": \"Rebecca\", 
			    \"to\": [
			    	{\"email\": \"john@example.com\", \"name\": \"John\", \"type\": \"to\"}, 
			    	{\"email\": \"julia@example.com\", \"name\": \"Julia\", \"type\": \"to\"},
			    	{\"email\": \"jane@example.com\", \"name\": \"Jane\", \"type\": \"cc\"},
			    	{\"email\": \"jim@example.com\", \"name\": \"Jim\", \"type\": \"bcc\"}],
			    \"attachments\": [{\"name\": \"attchment.pdf\", \"type\": \"text/pdf\", \"content\": [base64 content]}],
			    \"images\": [{\"name\": \"Image name\", \"type\": \"image/png\", \"content\": \"[base64 content]\"}]}
	    	");
            OutputStream os = conn.getOutputStream();
            os.write(object.toString().getBytes());
            os.flush();
            br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
            while ((output = br.readLine()) != null) {
                sb.append(output);
            }
            System.out.println(sb.toString());
        } catch (Exception e) {
            br = new BufferedReader(new InputStreamReader((conn.getErrorStream())));
            while ((output = br.readLine()) != null) {
                sb.append(output);
            }
            System.out.println(sb.toString());
        } finally {
            try {
                if (br != null) {
                    br.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            try {
                if (conn != null) {
                    conn.disconnect();
                }
            } catch (Exception e) {
                e.printStackTrace();

            }
        }
    }
}
                                           
Send transactional emails from ZeptoMail

How is ZeptoMail different from Mailchimp Transactional?

Here are some concepts and terminologies to easily navigate while using Zoho ZeptoMail.

  •  
  • Email Segments
  • DNS Requirements
  • Attachment Management
  • Measure
  • User Management
  • User Activity Logs
  • Suppress Emails
  • Logs and Content Retention
  • Email Trackers
  • Content Storage
  • Subscription
  • Support
  • IP Restrictions
  • Webhooks
  • MailChimp
  • Outbound → SubaccountsSegment your outbound messages by segregating into different subaccounts.
  • Settings → Domains → Sending DomainsUnder DNS records, enter your SPF, DKIM, and CNAME to verify your domain.
  •  
  • AnalyticsGet detailed statistics and metrics of sent, spam, bounced, tracked, and opens for each subaccount.
  • Multiple UsersOnly admins and owners will have full access, and everyone else will have no access.
  •  
  • Settings → Rejection Deny ListsEmail bounces and unsubscribes are added to suppressions manually and automatically.
  • Outbound → ActivityMailchimp Transactional will store activity data and message content for your emails.30 days of delivered message data retention and content retention.
  • Settings → Sending Defaults → Track OpensEnable Track Opens on the Settings page.
  • 30 days of delivered content retention.
  • For 50,000 emails$40 per month (2 blocks): Access to all features + your Mailchimp monthly plan.Blocks are purchased every month and billed for all emails (even unused ones).1-month free trial
  • 24/7 email, phone, and chat support is available for all users.
  •  
  • Settings → WebhooksAdd webhooks to domains to receive notifications on events linked to the messages you send.
  • zeptomail
  • Mail AgentsEmails can be grouped based on type, purpose, app, and more with Mail Agents.
  • Domains → DNS settingsDomain authentication is ensured by setting up DKIM, and CNAME records in your DNS settings.
  • File CacheEnhance storage management by uploading attachments to the File Cache. Later, use the File Cache key when sending emails via the API.File Cache supports 1GB of storage for an account.
  • ReportsView comprehensive reports of sent, delivered, soft bounces, hard bounces, processing failures, opens, clicks, and custom reports for all users.
  • Manage UsersAssign ownership and access control for multiple users under the account.(applicable to all users)
  • Activity LogsWith ZeptoMail’s activity logs, you can track the activities carried out by various users in your ZeptoMail account.(1 year of activity log retention)
  • Suppression ListHard bounces of certain categories are automatically added to the list. You can also suppress email addresses and domains manually.
  • Processed EmailsIn the processed emails section, sent emails are presented sequentially based on their processing order.Processed email data and content is stored for 60 days. (Enable the setting to retain content).
  • Mail Agent → Email TrackingIn ZeptoMail, you’ll have to enable tracking for open and click tracking for each Mail Agent.
  • 60 days of content retention.
  • For 50,000 emails$12.50 (5 credits): Access all features for all users; valid for 6 months for every user.Buy credits and pay as you go only for the used emails.1 credit free (10,000 emails) for 6 months.
  • 24/7 extensive technical support, including phone, email, and chat assistance, is offered to all users.
  • IP RestrictionsAdd a list of IPs specifically designated for sending emails solely from your ZeptoMail account to prevent malicious activity.
  • Mail Agent → WebhooksUse webhooks to receive notifications regarding activities happening in your emails.

Get a detailed comparison between Mailchimp Transactional and ZeptoMail.

Mailchimp Transactional vs. Zeptomail  

Mailchimp Transactional Transition API Code Explained

A detailed documentation into Mailchimp Transactional transition API to start sending your transactional emails from ZeptoMail.

Mailchimp Transactional Transition API  

ZeptoMail feature highlights

  • Mail Agents
  • File Cache
  • Processed Emails
  • Email Templates
  • Webhooks
  • Email Tracking
  • Domains
  • Suppression List
  • Reports
  • Subscription
  • Manage Users
  • Activity Logs
  • Content Settings
  • IP Restrictions
  • Export Logs

Mail Agents

Mail Agents

The Mail Agent feature in ZeptoMail helps organize transactional emails by type, purpose, and other criteria, making it easier to manage multiple applications or various business emails. Each Mail Agent is assigned a distinct API token and SMTP credentials. Learn more

File Cache

File Cache

File Cache is a great feature by ZeptoMail for easier attachment management. With File Cache, you can save images on your server and easily upload them directly in your transactional emails without any hassle. ZeptoMail’s File Cache provides 1GB of storage per account. Learn more

Processed Emails

Processed Emails

Processed emails help you track the status of your sent emails. These emails are listed in the sequence they were processed. The data for processed emails is kept for a maximum of 60 days. You can also export this list to monitor the performance of your transactional emails. Learn more

Email Templates

Email Templates

ZeptoMail offers pre-designed transactional email templates, minimizing the necessity of composing the same email repeatedly. Instead you can use standardized templates for OTPs, password resets, order confirmations, and much more. You can easily edit these email templates or create a new one from scratch. Learn more

Webhooks

Webhooks

Webhooks are personalized HTTP callbacks triggered by specific events. By enabling webhooks in ZeptoMail, you can receive real-time recipient activity data such as opens, clicks, or bounces to your application based on their interactions with the emails sent. Learn more

Email Tracking

Email Tracking

Email Tracking is a special feature to track the opens and clicks of the sent emails. This can help with analyzing the engagement level of your transactional emails. With ZeptoMail, you can get insights of opens and clicks by enabling the email tracking option for each Mail Agent. Learn more

Domains

Domains

The Domains page lets you add and manage about 100 domains in a ZeptoMail account. You can find the DKIM and CNAME values in the page and add them to your DNS for verifying your domain. You can also view associated domains for each Mail Agent and check their verification status. Learn more

Suppression List

Suppression List

A suppression list is essential to maintain a record of suppressed email addresses and domains. The ones that are moved to this list are excluded from receiving any emails. Some of the hard bounces are automatically added to this list when you turn on the auto-suppression feature. You can also add bounced email addresses and unsubscribes to the list manually. Learn more

Reports

Reports

ZeptoMail generates custom reports to monitor the overall performance of your transactional emails. These reports allow you to track and compare Mail Agents, as well as analyze metrics like opens, bounces, clicks, user engagement, and other important data. Email Tracking has to be enabled to get the click and open data. Learn more

Subscription

Subscription

In ZeptoMail, the subscription section has all of the details related to subscription and credits. This shows the history of purchased credits, transaction details, number of credits left, and emails left. You can buy more credits and set up the Auto top-up feature to acquire credits automatically. Learn more

Manage Users

Manage Users

ZeptoMail’s Manage User section lets you manage up to 30 users per account efficiently. You can assign a role for each user and set the level of accessibility for them based on their roles. Different roles that can be found in ZeptoMail: Postmaster: admin of the account (all privileges); Engineer: multiple access; Viewer: access to view only. Learn more

Activity Logs

Activity Logs

In a ZeptoMail account, activity logs monitor the actions carried out by various users. User activities such as renaming files, initiating file creations, updating Mail Agents, creating templates, and more can be found in this list. Additionally, you can export up to 5,000 records of activity logs as a .zip file.The exported .zip file can be accessed only for three days from the time the export is done. Learn more

Content Settings

Content Settings

Within ZeptoMail, you can save the content of your transactional emails within the Content Setting section under the Settings menu. This saved content can then be accessed in the processed emails section under each Mail Agent, available for viewing for 60 days. To retain the content data, tick off the box “Save the email content.” Learn more

IP Restrictions

IP Restrictions

ZeptoMail’s IP restriction feature lets you specify a list of IPs allowed to send emails from your account. This list provides added security to your account and acts as a safeguard against compromises to your send mail token and unauthorized email sending efforts. Learn more

Export Logs

Export Logs

In ZeptoMail, you have the option to export email logs, activity logs, and suppression lists. The exported file is accessible for only three days to maintain the confidentiality of sensitive information. Learn more

 1512 

Why should you choose ZeptoMail?

  • Exclusively transactional

    ZeptoMail provides top-tier inbox placement and delivers emails swiftly, within seconds.

  • User-friendly interface

    Connect ZeptoMail to your business with its user-friendly interface.

  • Email segmentation

    Categorize your emails by domain, application, or purpose into groups called Mail Agents.

  • No gatekeeping

    ZeptoMail’s functionalities don’t require updates or extra charges.

  • Comprehensive reports

    Keep track of all your activities with ZeptoMail’s detailed reports and logs, where every action is documented.

  • Flexible pricing

    ZeptoMail’s pay-as-you-go pricing model takes away the burden of paying for monthly plans and unused emails.

  • Attachment storage

    Optimize email sending by using ZeptoMail’s File Cache to store and upload attachments, ensuring swift access.

  • 24/7 support

    Connect with ZeptoMail’s support team anytime via chat, phone, or email for assistance.

  • Security and privacy

    ZeptoMail’s primary focus is a security-first approach to protect the privacy of transactional email communications.

Frequently asked questions

How long does it take to transition to ZeptoMail?

Transitioning to ZeptoMail takes only five minutes. Adjust just one line of your API code, and you can start sending transition emails from ZeptoMail.

Will your email deliverability be affected after transition?

No, the benefit of using ZeptoMail is maintaining email deliverability without any compromises. ZeptoMail protects sender reputation and guarantees high deliverability by sending transactional emails from reputable IPs. So sit back and enjoy seeing your email getting delivered right on time.

How much does it cost for transitioning to ZeptoMail?

There are no additional charges for transitioning. Pay only for the emails that you send using ZeptoMail.

Is ZeptoMail more affordable than Mailchimp Transactional?

Yes, ZeptoMail is much more affordable than Mailchimp Transactional. ZeptoMail is $27.50 lower than Mailchimp Transactional for every 50,000 emails. ZeptoMail costs around $12.50 (5 credits) for 50,000 emails. Mailchimp Transactional costs $40 every month for 50,000 emails. ZeptoMail charges only for the emails you use; there’s no extra charges every month.

Is it possible to start sending emails right after you create an account?

Yes. Right after you create your account and verify your domain, you’ll be able to send up to 10,000 emails, limited to 100 emails per day. Additional credits can be purchased after your account has been reviewed.

How can you purchase more ZeptoMail credits?

You have the option to buy credits either from the dashboard panel or the subscription panel. Each ZeptoMail credit allows you to send 10,000 emails and remains valid for 6 months.

Why do you need a Mail Agent?

A Mail Agent is used to group or segment all of your transactional emails. You’ll be sending different transactional emails like OTPs, password resets, and payment confirmations all from ZeptoMail. To manage them efficiently, ZeptoMail uses Mail Agents.

What happens if you run out of email credits?

You will no longer be able to send any emails. To avoid disruptions in email delivery, activate the Auto top-up feature. This automatically buys email credits once your specified limit is reached.

What happens to the unused emails?

Unused emails from each credit will be carried over to the following month and will remain valid for up to six months.

 912 

Choose a cost-effective and dedicated transactional email service today.