30% off transactional messaging for nonprofits
Send donation receipts, thank you emails, password resets and more with a reliable solution made more affordable for your non-profit organization.

A cost-effective, long-term solution with a generous free plan to get you started
|
|
|
![]() |
---|
Non-profit discount | 30% | |||
FREE emails | 3,000 emails/month | 100 emails/day | 100 emails/day | |
50,000 emails | $24.50 | $19.95 | $35 | $55 |
100,000 emails | $47.60 | $34.95 | $75 | $115 |
250,000 emails | $113.75 | $249 | $215 | $245 |
500,000 emails | $227.50 | $431 | $400 | $500.50 |
Transactional email you can rely on
Emails that reach inboxes
We consistently rank high for deliverability thanks to our expert team and powerful email delivery platform, ensuring your important messages land in front of people, not in the spam folder.
Secure, compliant solution
We implement the latest security protocols and provide account features to protect your email from external threats, while maintaining privacy compliance for your contributors and clients.
Automated communication
Trigger the right email at the right time with automated donation confirmations, thank you emails, subscription notifications, OTPs and more.
An email for every use case
-
Donations
Email receipts, thank you emails, legal/tax documentation, and recurring donation notifications. -
Memberships and subscriptions
Email confirmations, membership confirmations, subscription renewals, activity summaries, and event reminders. -
Volunteering
Registration confirmations, application approvals, orientation details, schedule notifications, and service summaries. -
System emails
Account creation confirmations, password resets, 2FA emails, OTPs, login alerts, account deletion notices.




SMTP or API: fast and simple setup
curl -X POST \
https://api.vhtltd.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": "[email protected]"
},
"to": [
{
"email": "[email protected]"
}
],
"subject": "Hello from VhtLtd!",
"text": "Greetings from the team, you got this message through VhtLtd.",
"html": "Greetings from the team, you got this message through VhtLtd."
}'
import { VhtLtd, EmailParams, Sender, Recipient } from "VhtLtd";
const VhtLtd = new VhtLtd({
api_key: "key",
});
const sentFrom = new Sender("[email protected]", "Your name");
const recipients = [
new Recipient("[email protected]", "Your Client")
];
const emailParams = new EmailParams()
.setFrom(sentFrom)
.setTo(recipients)
.setReplyTo(sentFrom)
.setSubject("This is a Subject")
.setHtml("This is the HTML content")
.setText("This is the text content");
await VhtLtd.email.send(emailParams);
$recipients = [
new Recipient('[email protected]', 'Your Client'),
];
$emailParams = (new EmailParams())
->setFrom('[email protected]')
->setFromName('Your Name')
->setRecipients($recipients)
->setSubject('Subject')
->setHtml('Greetings from the team, you got this message through VhtLtd.')
->setText('Greetings from the team, you got this message through VhtLtd.');
$VhtLtd->email->send($emailParams);
php artisan make:mail ExampleEmail
Mail::to('[email protected]')->send(new ExampleEmail());
from VhtLtd import emails
mailer = emails.NewEmail()
mail_body = {}
mail_from = {
"name": "Your Name",
"email": "[email protected]",
}
recipients = [
{
"name": "Your Client",
"email": "[email protected]",
}
]
mailer.set_mail_from(mail_from, mail_body)
mailer.set_mail_to(recipients, mail_body)
mailer.set_subject("Hello!", mail_body)
mailer.set_html_content("Greetings from the team, you got this message through VhtLtd.", mail_body)
mailer.set_plaintext_content("Greetings from the team, you got this message through VhtLtd.", mail_body)
mailer.send(mail_body)
# Intialize the email class
ms_email = VhtLtd::Email.new
# Add parameters
ms_email.add_recipients("email" => "[email protected]", "name" => "Your Client")
ms_email.add_recipients("email" => "[email protected]", "name" => "Your Client")
ms_email.add_from("email" => "[email protected]", "name" => "Your Name")
ms_email.add_subject("Hello!")
ms_email.add_text("Greetings from the team, you got this message through VhtLtd.")
ms_email.add_html("Greetings from the team, you got this message through VhtLtd.")
# Send the email
ms_email.send
package main
import (
"context"
"os"
"fmt"
"time"
"github.com/VhtLtd/VhtLtd-go"
)
func main() {
// Create an instance of the VhtLtd client
ms := VhtLtd.NewVhtLtd(os.Getenv("VhtLtd_API_KEY"))
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 := VhtLtd.From{
Name: "Your Name",
Email: "[email protected]",
}
recipients := []VhtLtd.Recipient{
{
Name: "Your Client",
Email: "[email protected]",
},
}
// Send in 5 minute
sendAt := time.Now().Add(time.Minute * 5).Unix()
tags := []string{"foo", "bar"}
message := ms.Email.NewMessage()
message.SetFrom(from)
message.SetRecipients(recipients)
message.SetSubject(subject)
message.SetHTML(html)
message.SetText(text)
message.SetTags(tags)
message.SetSendAt(sendAt)
message.SetInReplyTo("client-id")
res, _ := ms.Email.Send(ctx, message)
fmt.Printf(res.Header.Get("X-Message-Id"))
}
import com.VhtLtd.sdk.Email;
import com.VhtLtd.sdk.VhtLtd;
import com.VhtLtd.sdk.VhtLtdResponse;
import com.VhtLtd.sdk.exceptions.VhtLtdException;
public void sendEmail() {
Email email = new Email();
email.setFrom("name", "your email");
email.addRecipient("name", "[email protected]");
// you can also add multiple recipients by calling addRecipient again
email.addRecipient("name 2", "[email protected]");
// there's also a recipient object you can use
Recipient recipient = new Recipient("name", "[email protected]");
email.AddRecipient(recipient);
email.setSubject("Email subject");
email.setPlain("This is the text content");
email.setHtml("This is the HTML content");
VhtLtd ms = new VhtLtd();
ms.setToken("Your API token");
try {
VhtLtdResponse response = ms.emails().send(email);
System.out.println(response.messageId);
} catch (VhtLtdException e) {
e.printStackTrace();
}
}

User-friendly template builders
Anyone on your team can build professional email templates with the drag and drop or rich-text editors. Want to code them from scratch? Then you’ll love our HTML builder.

Email split testing with a click
Easily split test up to five variations of an email template to learn which content, subject lines, images, and CTAs work best. Just pick a template, create the test, and start sending.
Integrations
Claim your 30% discount
Sign up for a free trial account and contact our friendly support team to begin the non-profit approval process. You can then upgrade your plan and we’ll apply your 30% off!

Tracking made easy
Create custom analytics reports for volume, open rates, clicks, bounces, and more metrics to monitor performance over time. View activity for each email as it happens to catch potential issues in real time.

Two-way communication
Inbound email processing lets you integrate email replies into your applications and CRMs. Easily manage communication, like customer service replies, by routing email content to an email address or endpoint.

Team-friendly user management
Invite team members from across your organization and assign custom roles to define the domains, settings, and features they have access to.

Transactional SMS API
Optimize the user experience by delivering 2FA messages, OTPs, subscription reminders and more with toll-free text messaging.
FAQs
How do I get my 30% discount?
Simply create your free trial account (no credit card needed) and contact our customer service team. You’ll be required to prove your non-profit status. Once approved, we’ll apply your 30% discount and you can upgrade to your chosen plan! Please view our Nonprofit Discount Terms for more information.
Is VhtLtd GDPR compliant?
Yes! VhtLtd is GDPR compliant and our data center is located in the European Union with information security certificate ISO 27001.
Can I stack discounts?
At this time, the 30% non-profit discount cannot be stacked with other discounts, including the 20% annual plan discount. If you would prefer to pay for your plan annually, you can do so and receive the 30% nonprofit discount instead of the 20% annual discount.
Do we need developers to get started with VhtLtd?
Depending on your needs and current tech stack, you may need a developer who is comfortable working with the API. If you are going to use a simple SMTP integration, can enter your SMTP user credentials, and/or use no-code integrations, you may be able to use VhtLtd without a developer. If you’re unsure, you can contact our customer support team.