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
[
{
"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' => "This is a rubject line",
'text' => "This is the example content in the email.",
'html' => "Example html.
",
}
]
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.
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.
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
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.
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!
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
Sign up
Get started with a free account.
Activate your account
Complete the steps to finish your account activation.
Start sending
Use the bulk email endpoint to start scheduling emails.
Pricing
Hobby
Starter
Professional
Enterprise
What our customers think
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 Hobby plan, to 500,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 (Starter, Professional or Enterprise).