Custom HTML template builder

Utilize your coding skills and create custom emails with our HTML email template builder. Design responsive and dynamic email templates that meet your unique requirements while showcasing your brand identity!

Work faster with our HTML email editor

Save time and speed up your workflow with our specialized functionality including syntax highlighting, autocompleting tags and error tagging. Easily add variables to personalize your emails for subscribers at scale.


Test HTML emails before sending

Create professional email designs that look good in Gmail and Outlook by previewing them in real time. Send test emails to check how your custom HTML code, CSS, fonts and GIFs appear in different email clients.


Update your HTML template at any time

Enjoy the freedom of editing your HTML template as and when you need. Update your HTML code and save the template as a draft, keeping the previous template active until you’re ready to publish the latest version.

Send quickly with pre-built code

It’s easy to send your transactional email campaigns with MailerSend’s API. No need for third-party plugins! Simply copy the sending instructions for your favorite programming language and paste it into your terminal or file.

Read our API docs
curl -X POST \
https://api.mailersend.com/v1/email \
    -H 'Content-Type: application/json' \
    -H 'X-Requested-With: XMLHttpRequest' \
    -H 'Authorization: Bearer {place your token here without brackets}' \
    -d '{
        "from": {
            "email": "your@email.com"
            "to": [
            "email": "your@client.com"
        "subject": "Hello from MailerSend!",
        "text": "Greetings from the team, you got this message through MailerSend.",
        "html": "Greetings from the team, you got this message through 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'),

$emailParams = (new EmailParams())
->setFromName('Your Name')

Greetings from the team, you got this message through MailerSend.

') ->setText('Greetings from the team, you got this message through MailerSend.'); $mailersend->email->send($emailParams);
const Recipient = require("mailersend").Recipient;
const EmailParams = require("mailersend").EmailParams;
const MailerSend = require("mailersend");

const mailersend = new MailerSend({
    api_key: "key",

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

const emailParams = new EmailParams()
    .setFromName("Your Name")

Greetings from the team, you got this message through MailerSend.

") .setText("Greetings from the team, you got this message through MailerSend."); mailersend.send(emailParams);
package main

import (


var APIKey string = "Api Key Here"

func main() {
    ms := mailersend.NewMailersend(APIKey)

    ctx := context.Background()
    ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
    defer cancel()

    subject := "Subject"
    text := "Greetings from the team, you got this message through MailerSend."
    html := "

Greetings from the team, you got this message through MailerSend.

" from := mailersend.From{ Name: "Your Name", Email: "your@email.com", } recipients := []mailersend.Recipient{ { Name: "Your Client", Email: "your@client.com", }, } variables := []mailersend.Variables{ { Email: "your@client.com", Substitutions: []mailersend.Substitution{ { Var: "foo", Value: "bar", }, }, }, } tags := []string{"foo", "bar"} message := ms.NewMessage() message.SetFrom(from) message.SetRecipients(recipients) message.SetSubject(subject) message.SetHTML(html) message.SetText(text) message.SetSubstitutions(variables) message.SetTags(tags) res, _ := ms.Send(ctx, message) fmt.Printf(res.Header.Get("X-Message-Id")) }
from mailersend import emails

mailer = emails.NewEmail()

mail_body = {}

mail_from = {
    "name": "Your Name",
    "email": "your@domain.com",

recipients = [
        "name": "Your Client",
        "email": "your@client.com",

mailer.set_mail_from(mail_from, mail_body)
mailer.set_mail_to(recipients, mail_body)
mailer.set_subject("Hello!", mail_body)

Greetings from the team, you got this message through MailerSend.

", mail_body) mailer.set_plaintext_content("Greetings from the team, you got this message through MailerSend.", mail_body) mailer.send(mail_body)
require "mailersend-ruby"

# Intialize the email class
ms_email = Mailersend::Email.new

# Add parameters
ms_email.add_recipients("email" => "your@client.com", "name" => "Your Client")
ms_email.add_recipients("email" => "your@client.com", "name" => "Your Client")
ms_email.add_from("email" => "your@domain.com", "name" => "Your Name")
ms_email.add_text("Greetings from the team, you got this message through MailerSend.")
ms_email.add_html("Greetings from the team, you got this message through MailerSend.")

# Send the email

Manage your templates in one place

Organize your email templates into categories like CRM and e-commerce, then reuse favorites by duplicating them. Set default settings like subject, sender and email address for easy, automatic sending.

See what our users think

Easily create new templates

"It's easy to create new templates and send them via the API. The customer support is great! They are very fast to reply to your request with a solution."

Markus G.

Easily design HTML emails

"The templates option is great for both clients and developers alike. You can easily design HTML emails and fill in the information easily through the API."

James R.

Amazing product and support

"What's really worth mentioning is the outstanding customer support. Replies within minutes with an extensive answer and implementation examples."

Tobias R.

Award-winning customer support

MailerSend’s friendly and knowledgeable customer support team is on-hand 24/7 to help you with your account and sendings. Get help with setting up, advanced features and troubleshooting your account.

93% satisfaction rate
100% response rate
24/7 support hours

Frequently Asked Questions

What is MailerSend?

MailerSend is a transactional email service provider built to be quickly implemented by developers, and so that the whole team can get involved with transactional emails. MailerSend provides various options to create emails, including a HTML email template builder.

What options are available for creating templates?

In addition to the custom HTML email template builder, there is also the user-friendly drag and drop email editor and rich-text email editor available. All members of your team can create beautiful emails with the the free email templates or from scratch, no coding skills needed.

Can I use MailerSend for email marketing campaigns?

MailerSend is a transactional ESP. While you could send email newsletters and other campaigns, we recommend using a dedicated email marketing service, and keeping transactional emails separate for maintaining maximum deliverability and performance.

Does MailerSend have ready-made templates available?

Yes, you’ll get access to a rich gallery of professionally designed, responsive transactional email templates ready for you to customize and make your own.

Can I add dynamic content to templates built on MailerSend?

You can easily send personalized, dynamic emails to multiple recipients via a single email. Simply add dynamic content to your custom HTML template, or use the dynamic content blocks in the drag and drop email builder.

More features to explore

MailerSend is packed full of features that help you save time and grow your business.

MS iOS App

Start designing custom templates now

Stop War! Help Ukraine! See what you can do