Skip to product menu
Skip to main content

Switch from MailChannels to Zoho ZeptoMail in just 5 minutes

Modify one line of your API code to switch to a feature-rich and affordable transactional email service.

What makes ZeptoMail so special?

MailChannels is an email sending API service for Cloudflare Workers customers. They’ve recently announced an end of life notice, requesting customers to switch to another transactional email service to continue their email sending process.

Are you a MailChannels user hanging in there without knowing which email service to rely on and invest in?

If you’re a MailChannels user looking to switch to an affordable transactional email service, this is the right time to transition to Zoho ZeptoMail. Along with highly reliable transactional email sending and management, every user can send up to 10,000 free emails on sign up. Our pay-as-you-go plan ensures you pay only for the emails you use. With ZeptoMail's top-notch features, you get to experience excellent deliverability and high security at an affordable price.

Get started with Zoho ZeptoMail.

Here’s a quick roadmap to starting your transition journey from MailChannels to Zoho ZeptoMail using this simple four-step guide.

Step

Sign up for Zoho ZeptoMail.

  • Sign up for Zoho ZeptoMail by entering the relevant credentials.

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

  • Once you verify your account, you’ll reach the page where you can enable two-factor authentication for your account.

Step

Domain addition and verification.

Step

Modify one line of your existing API code.

  • You can easily make the transition from MailChannels to ZeptoMail by just changing this one line of your API code.

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

  • To authorize your request, you need to add the send mail token (Mail Agents→ setup info→ API→ copy send mail token) in the header section.

Step

Send transactional emails from ZeptoMail.

  • You can now start sending your transactional emails from Zoho ZeptoMail. Happy email sending!

Sign up for Zoho ZeptoMail
Domain addition and verification
 
       
copy

curl "https://api.zeptomail.com/v1.1/mc/email" \
        -X POST \
        -H "Accept: application/json" \
        -H "Content-Type: application/json" \
        -H "Authorization:[sendmail_token]" \
        -d '{ 
        \"headers\" : { \"key\" : \"headers\" }, 
        \"from\": { \"email\": \"fromAddress@example.com\", \"name\": \"fromName\" }, 
        \"personalizations\" : [ { \"cc\" : [ { \"name\" : \"ccName\", \"email\" : \"ccAddress@example.com\" } ], 
                                \"bcc\" : [ { \"name\" : \"bccName\", \"email\" : \"bccAddress@example.com\" } ],
                                \"to\" : [ { \"name\" : \"toName\", \"email\" : \"toAddress@example.com\" } ] } ], 
        \"subject\" : \"Test subject\", 
        \"content\" : [ { \"type\" : \"html/text\", \"value\" : \"This is a test email\" } ], 
        \"reply_to\" : { \"email\": \"replyToAddress@example.com\", \"name\": \"replyToName\" } }'
                                            

import fetch from 'node-fetch';

fetch("https://api.zeptomail.com/v1.1/mc/email", {
    body: JSON.stringify({
        "personalizations": [
          {
            "to": [
              {
                "email": "email",
                "name": "name"
              }
            ],
         
            
            "bcc": [
              {
                "email": "email",
                "name": "name"
              }
            ]
          },
          {
            "to": [
              {
                "email": "email",
                "name": "name"
              }
            ],
         
            
            "cc": [
              {
                "email": "email",
                "name": "name"
              }
            ]
          }
          
        ],
      
        "from": {
          "email": "email",
          "name": "name"
        },
      
        "reply_to": {
          "email": "email",
          "name": "name"
        },
      
        "subject": "Your Example Order Confirmation",
      
        "content": [
          {
            "type": "text/html",
            "value": "Hello, this is a test mail"
          }
        ],
      
        "headers":{
            "customHeaders":"headers",
            
        }
        
        }),
    method: "POST",
    headers: {
        "Authorization": "Zoho-enczapikey ***",
        "Accept": "application/json",
        "Content-Type": "application/json"
    }
})
                                            

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/mc/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", "[send_mail_token]");
            JObject parsedContent = JObject.Parse("{
                'headers' : {
                    'key' : 'headers'
                },
                'from': {
                    'email': 'fromAddress@example.com',
                    'name': 'fromAddress'
                },
                'personalizations' : [ {
                    'cc' : [ {
                        'name' : 'ccName',
                        'email' : 'ccAddress@example.com'
                    } ],
                    'bcc' : [ {
                        'name' : 'bccName',
                        'email' : 'bccAddress@example.com'
                    } ],
                    'subject' : 'Test subject',
                    'to' : [ {
                        'name' : 'toName',
                        'email' : 'toAddress@example.com'
                    } ]
                } ],
                'content' : [ {
                    'type' : 'html/text',
                    'value' : 'This is a test email'
                } ],
                'reply_to' : {
                    'email': 'replyToName',
                    'name': 'replyToAddress@example.com'
                }
            }");
            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/mc/email"

payload = "{ \"headers\" : { \"key\" : \"headers\" }, \"from\": { \"email\": \"fromAddress@example.com\", \"name\": \"fromName\" }, \"personalizations\" : [ { \"cc\" : [ { \"name\" : \"ccName\", \"email\" : \"ccAddress@example.com\" } ], \"bcc\" : [ { \"name\" : \"bccName\", \"email\" : \"bccAddress@example.com\" } ], \"to\" : [ { \"name\" : \"toName\", \"email\" : \"toAddress@example.com\" } ] } ], \"subject\" : \"Test subject\", \"content\" : [ { \"type\" : \"html/text\", \"value\" : \"This is a test email\" } ], \"reply_to\" : { \"email\": \"replyToAddress@example.com\", \"name\": \"replyToName\" } }"
headers = {
'accept': "application/json",
'content-type': "application/json",
'authorization': "[send_mail_token]",
}

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/mc/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"
        },
        "from": {
            "email": "fromAddress@example.com",
            "name": "fromAddress"
        },
        "personalizations": [
            {
            "cc": [
                {
                "name": "ccName",
                "email": "ccAddress@example.com"
                }
            ],
            "bcc": [
                {
                "name": "bccName",
                "email": "bccAddress@example.com"
                }
            ],
            "to": [
                {
                "name": "toName",
                "email": "toAddress@example.com"
                }
            ]
            }
        ],
        "subject": "Test subject",
        "content": [
            {
            "type": "html/text",
            "value": "This is a test email"
            }
        ],
        "reply_to": {
            "name": "replyToName",
            "email": "replyToAddress@example.com"
        }
    }'
    CURLOPT_HTTPHEADER => array(
        "accept: application/json",
        "authorization: [send_mail_token]",
        "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/mc/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", "[send_mail_token]");
            JSONObject object = new JSONObject("{ 
                \"headers\" : { \"key\" : \"headers\" }, 
                \"from\": { \"email\": \"fromAddress@example.com\", \"name\": \"fromName\" }, 
                \"personalizations\" : [ { 
                    \"cc\" : [ { \"name\" : \"ccName\", \"email\" : \"ccAddress@example.com\" } ], 
                    \"bcc\" : [ { \"name\" : \"bccName\", \"email\" : \"bccAddress@example.com\" } ],
                    \"to\" : [ { \"name\" : \"toName\", \"email\" : \"toAddress@example.com\" } ] } ], 
                \"subject\" : \"Test subject\", 
                \"content\" : [ { \"type\" : \"html/text\", \"value\" : \"This is a test email\" } ], 
                \"reply_to\" : { \"email\": \"replyToAddress@example.com\", \"name\": \"replyToName\" } 
            }");
            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

MailChannels Transition API Code Explained

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

MailChannels Transition API  

ZeptoMail feature highlights

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

Mail Agents

Mail Agents

A Mail Agent helps you organize your transactional emails by grouping them based on type, purpose, applications, and more. You can easily manage multiple applications under one roof efficiently. Learn more

 1512 

Why should you choose ZeptoMail?

  • Exclusively transactional

    ZeptoMail ensures great inbox placement and delivery in seconds.

  • User-friendly interface

    Easy-to-use interface seamlessly connects ZeptoMail to your business.

  • Email segmentation

    Segment your emails into Mail Agents based on domain, application, or purpose.

  • No gatekeeping

    Use all of the features without restrictions. No updates or additional costs are required to use ZeptoMail's features.

  • Comprehensive reports

    Because every action is recorded as data, you’ll get detailed reports and logs to keep you informed of all your activities.

  • Flexible pricing

    ZeptoMail's pay-as-you-go pricing ensures you only pay for the emails you use, without being tied to monthly plans or unused emails.

  • Attachment storage

    Upload and store attachments in ZeptoMail's file cache for easy access when sending emails.

  • 24/7 support

    You’ll have 24/7 access to technical assistance over chat, phone, and email for anything related to ZeptoMail.

  • Security and privacy

    ZeptoMail is built with a security-first approach because transactional emails contain confidential information.

Frequently asked questions

How long does it take to transition to ZeptoMail?

It only takes five minutes to switch to ZeptoMail. Simply change one line of your API code and you can start sending transactional emails from ZeptoMail.

 912 

Register with ZeptoMail today and enjoy 10,000 free emails!

All names and marks mentioned here remain the property of their original owners. Details are as published by the named competitors on their website(s) on April 2024 and are subject to change without notice. The details provided on this page are for general purposes only and cannot be considered as authorized information from the respective competitors. Zoho disclaims any liability for possible errors, omissions, or consequential losses based on the details here.