Custom HTML email builder

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

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. CTO, E-Learning
Amazing product and support!

MailerSend is extremely easy to use and super fast to set up. I was able to send the first email via the API in minutes. With the predefined templates and drag & drop editor you're able to get started really quickly.
Tobias R. Owner, Information Technology and Services
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. Web Developer, Computer Software

Work faster with our HTML email editor

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


Create HTML emails that work in all email clients

MailerSend’s automatic CSS inline feature formats your CSS so it works with email clients that strip out CSS style blocks. Have confidence that your emails will be properly displayed for all recipients.


Save time with ready-to-use snippets

Copy and paste pre-made snippets to effortlessly add template elements, such as conditional tags, columns, buttons and footers. Save time on template building to use elsewhere.


Import existing code

Have a pre-existing HTML email template? You can easily import the code to the HTML email builder via file upload or URL to edit or start sending.


Preview 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.


Split test email templates

Learn which content, subject lines and CTAs resonate more with recipients by split testing up to 5 variants of a template. Use your results to inform changes and improve performance.

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 transactional 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.

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 options are available for creating templates?

In addition to the custom HTML email creator, 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.

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.

How can I create HTML emails in MailerSend?

You can easily create HTML emails by selecting the HTML editor when you go to create a new template. From there, you can choose a pre-made HTML template to get a headstart, build a template from scratch, or import the HTML code for a pre-existing template via file upload or URL.

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.

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.

Start designing custom templates now

Try MailerSend for free: Design your templates and send up to 100 emails with a trial domain. Add your own domain to get 3,000 emails/month free and start sending.