Send bulk email

Send transactional emails in bulk

Optimize your sendings and preserve your daily request quota by consolidating multiple emails into a single HTTP request.

Easy scheduling with the bulk API endpoint

Use MailerSend’s simple API and the bulk email endpoint to schedule multiple emails and check their status after sending. Save on resources and make sending more efficient.
Read our API docs
[
    {
      "from": {
        "email": "hello@mailersend.com",
        "name": "MailerSend"
      },
      "to": [
        {
          "email": "john@mailersend.com",
          "name": "John Mailer"
        }
      ],
      "subject": "Hello from {$company}!",
      "text": "This is just a friendly hello from your friends at {$company}.",
      "html": "This is just a friendly hello from your friends at {$company}.",
      "variables": [
        {
          "email": "john@mailersend.com",
          "substitutions": [
            {
              "var": "company",
              "value": "MailerSend"
            }
          ]
        }
      ]
    },
    {
      "from": {
        "email": "hello@mailersend.com",
        "name": "MailerSend"
      },
      "to": [
        {
          "email": "jane@mailersend.com",
          "name": "Jane Mailer"
        }
      ],
      "subject": "Welcome to {$company}!",
      "text": "This is a welcoming message from your friends at {$company}.",
      "html": "This is a welcoming message from your friends at {$company}.",
      "variables": [
        {
          "email": "jane@mailersend.com",
          "substitutions": [
            {
              "var": "company",
              "value": "MailerSend"
            }
          ]
        }
      ]
    }
  ]
use MailerSend\MailerSend;
use MailerSend\Helpers\Builder\Recipient;
use MailerSend\Helpers\Builder\EmailParams;

$mailersend = new MailerSend(['api_key' => 'key']);

$recipients = [
    new Recipient('your@client.com', 'Your Client'),
];

$bulkEmailParams = [];

$bulkEmailParams[] = (new EmailParams())
    ->setFrom('your@domain.com')
    ->setFromName('Your Name')
    ->setRecipients($recipients)
    ->setSubject('Subject')
    ->setHtml('This is the HTML content')
    ->setText('This is the text content');

$bulkEmailParams[] = (new EmailParams())
    ->setFrom('your@domain.com')
    ->setFromName('Your Name')
    ->setRecipients($recipients)
    ->setSubject('Subject')
    ->setHtml('This is the HTML content')
    ->setText('This is the text content');

$mailersend->bulkEmail->send($bulkEmailParams);
import 'dotenv/config';
import { MailerSend, EmailParams, Sender, Recipient } from "mailersend";

const mailerSend = new MailerSend({
  apiKey: process.env.API_KEY,
});

const sentFrom = new Sender("your@yourdomain.com", "Your name");

const bulkEmails = [];

const emailParams = new EmailParams()
  .setFrom(sentFrom)
  .setTo([
    new Recipient("your@client.com", "Your Client")
  ])
  .setSubject("This is a Subject")
  .setHtml("This is the HTML content")
  .setText("This is the text content");

bulkEmails.push(emailParams);

const emailParams2 = new EmailParams()
  .setFrom(sentFrom)
  .setTo([
    new Recipient("your_2@client.com", "Your Client 2")
  ])
  .setSubject("This is a Subject 2")
  .setHtml("This is the HTML content 2")
  .setText("This is the text content 2");

bulkEmails.push(emailParams2);

await mailerSend.email.sendBulk(bulkEmails);
package main

import (
    "context"
	"time"
	"log"
	"fmt"
	
    "github.com/mailersend/mailersend-go"
)

var APIKey = "Api Key Here"

func main() {
	// Create an instance of the mailersend client
	ms := mailersend.NewMailersend(APIKey)
	
	ctx := context.Background()
	ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
	defer cancel()

	subject := "Subject"
	text := "This is the text content"
	html := "

This is the HTML content

" from := mailersend.From{ Name: "Your Name", Email: "your@domain.com", } recipients := []mailersend.Recipient{ { Name: "Your Client", Email: "your@client.com", }, } var messages []*mailersend.Message for i := range [2]int{} { msg := &mailersend.Message{ From: from, Recipients: recipients, Subject: fmt.Sprintf("%s %v", subject, i), Text: text, HTML: html, } messages = append(messages, msg) } _, _, err := ms.BulkEmail.Send(ctx, messages) if err != nil { log.Fatal(err) } }
from mailersend import emails

api_key = "API key here"

mailer = emails.NewEmail(api_key)

mail_list = [
  {
    "from": {
      "email": "your@domain.com",
      "name": "Your Name"
    },
    "to": [
      {
        "email": "your@client.com",
        "name": "Your Client"
      }
    ],
    "subject": "Subject",
    "text": "This is the text content",
    "html": "

This is the HTML content

", }, { "from": { "email": "your@domain.com", "name": "Your Name" }, "to": [ { "email": "your@client.com", "name": "Your Client" } ], "subject": "Subject", "text": "This is the text content", "html": "

This is the HTML content

", } ] print(mailer.send_bulk(mail_list))
require "mailersend-ruby"

ms_bulk_email = Mailersend::BulkEmail.new

ms_bulk_email.messages = [
    {
        'from' => {"email" => "april@parksandrec.com", "name" => "April"},
        'to' => [{"email" => "ron@parksandrec.com", "name" => "Ron"}],
        'subject' => "Time",
        'text' => "Time is money, money is power, power is pizza, and pizza is knowledge. Let's go.",
        'html' => "Time is money, money is power, power is pizza, and pizza is knowledge. Let's go.",
      },
      {
        'from' => {"email" => "april@parksandrec.com", "name" => "April"},
        'to' => [{"email" => "leslie@parksandrec.com", "name" => "Leslie"}],
        'subject' => "Lorem Ipsum",
        'text' => "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
        'html' => "

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

", } ] ms_bulk_email.send
import com.mailersend.sdk.emails.Email;
import com.mailersend.sdk.MailerSend;
import com.mailersend.sdk.MailerSendResponse;
import com.mailersend.sdk.exceptions.MailerSendException;

public void sendBulkEmails() {

    Email email1 = new Email();

    email1.setFrom("name", "your email");
    email1.addRecipient("name", "your@first-recipient.com");
   
    email1.setSubject("Email subject 1");

    email1.setPlain("This is the text content for the first email");
    email1.setHtml("

This is the HTML content for the first email

"); Email email2 = new Email(); email2.setFrom("name", "your email"); email2.addRecipient("name", "your@second-recipient.com"); email2.setSubject("Email subject 2"); email2.setPlain("This is the text content for the second email"); email2.setHtml("

This is the HTML content for the second email

"); MailerSend ms = new MailerSend(); ms.setToken("Your API token"); try { String bulkSendId = ms.emails().bulkSend(new Email[] { email1, email2 }); // you can use the bulkSendId to get the status of the emails System.out.println(bulkSendId); } catch (MailerSendException e) { e.printStackTrace(); } }

Bulk transactional email delivery for your every need

Banks and financial services

General customer alerts about security, policy updates, products, and branch information.

Apps and software

Downtime & maintenance updates, data breach alerts, changes to Terms of Service, and app launch alerts.

E-commerce businesses

Product recalls, back-in-stock alerts, pre-purchased sales updates, and product launch notifications.

Healthcare

Emergency communication, seasonal reminders (e.g. flu vaccine), practice open times, and data breach alerts.

Education

Important school updates, emergency alerts, event reminders, class schedules, and holiday reminders.

Real estate

New property listings, open house reminders and invitations, and updates about open times.

MailerSend

Customize each email to the recipient

Dynamic email templates and custom variables enable you to send a single templated email to multiple recipients, personalized for each and every one.

MailerSend

Deliverability you can count on

MailerSend’s powerful infrastructure and years of deliverability experience ensure maximum inbox placement, while bulk email delivery allows you to further optimize your sendings.

Instant transactional email delivery

Ensure customers and users receive important messages such as password resets or 2FA instantly, and schedule less critical alerts and notices for bulk email delivery.

Integrations

Easily connect other web apps with MailerSend so they seamlessly work together to share information, automate workflows and enhance your customer experience.
MailerSend

Gain valuable activity and performance insights

Keep track of email delivery, opens clicks, spam complaints and more with the analytics and activity pages and the iOS app. Create and download custom reports with just a few clicks.

MailerSend

Test and tweak templates to see what works best

Test up to 5 variations of a template with email split testing to learn which content, CTAs and subject lines perform the best with your recipients. Simply add the template ID to your API call!

MailerSend

Protect your sender reputation with email verification

Scan your list of recipients to identify invalid or risky emails with our inbuilt email verification tool. Keep your list clean to save on your sending quota and improve deliverability.

How to start sending bulk emails with MailerSend

Pricing

Three simple plans, no hidden costs. Start with 3,000 emails/month for free and upgrade to get better pricing when you need more volume or features.
How many emails do you plan to send?
3k
Save 20% by paying yearly
Pricing in Euros and British Pounds is for informational purposes only. All billing invoices will be charged in US dollars.
Starter
Free
3,000 emails
Extra usage:
$1.00 1.00 £1.00 /1000 emails
Premium
$ / month, billed yearly
Monthly price x 12 =
/ month, billed yearly
Monthly price x 12 =
£ / month, billed yearly
Monthly price x 12 =
$25 / month 25 / month £25 / month
50,000 emails
100 SMS
100 email verification credits
Extra usage:
$0.90 0.90 £0.90 /1000 emails
$1.40 1.40 £1.40 /100 SMS
Sign up FREE
Upgrade anytime
Enterprise
For large organisations with special requirements.

What our customers think

MailerSend integrates quickly into your tech stack, scales with your sendings, and ensures that your emails get delivered.
Very happy I found MailerSend—I will be using it long term. It’s very easy to use and, compared it with several other bulk email services online, you get the most value for money. It does exactly what I needed.
Brennan S. IT Systems Manager, Brennan S.
Excellent deliverability, powerful API, complete analytics and fast support. They have a great dashboard with a vast amount of valuable data. The API is very fast to accept emails, delivery is almost instantaneous.
Steffen S. Small-business Owner, Software Company
I was using another mail service, but wasn’t satisfied, so I switched to mailersend. I stayed because not only the mail delivery is excellent, but the UX is awesome. I had to speak with support for a feature request, and they were great.
Verified User Human Resources, Verified User

Try MailerSend for free

Sign up now to experience all of the features that make MailerSend a great solution for bulk transactional email. Get 3,000 emails/month free.

Frequently Asked Questions

How many emails can I send at once with MailerSend?

Each plan type has a different daily request quota, ranging from 1,000 for the Free plan, to 100,000+ for an Enterprise plan. With the bulk email endpoint, you can send up to 500 emails in a single request, and up to 10 API requests a minute to the bulk-email endpoint. That’s 5,000 emails in a single minute!

How do you ensure high deliverability rates for bulk emails?

The bulk-email API endpoint was created specifically to save on sending resources and optimize deliverability of bulk emails. What’s more, our team has extensive experience in email deliverability and knows what it takes to ensure messages reach the inbox.

Can I track the performance of my email sending with MailerSend?

Of course! We know that tracking the performance of your transactional emails is essential for keeping an eye on key metrics and adjusting your messages for an optimal customer experience. MailerSend includes an advanced analytics tools for in-depth, custom reporting, and an email activity page to check the status of emails in real-time. You can even track performance on the go with our iOS app.

Can I integrate your service with my current email system?

With the email API, you can easily connect to any of your apps. If you’re a MailerLite user, you can use SSO to connect your accounts. You can also use our official integrations, including Zapier, which allows you to connect to 4,000+ apps. Check out our integrations for more information. 

What kind of email templates can I use with your service?

Our template gallery has a range of responsive, dynamic transactional email templates that have been professionally designed and are ready for your use. You can also create your own templates with the Drag and Drop, HTML and Rich-text email builders.

What kind of support do you offer if I need help with my bulk email campaigns?

Our friendly and knowledgeable customer support team is available to assist you with any technical or account related issues via email or live chat (Premium or Enterprise).