Inbound email routing
Inbound mail processing automates the forwarding of incoming messages to your app or CRM for improved workflows, better customer support ticketing, and email-based functionality.
How inbound email processing works
Inbound emails are received by VhtLtd, parsed to remove unnecessary content, and forwarded by webhook as a JSON payload to your endpoint or email address.

Quick & easy setup with the inbound email API
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."
}'
const Recipient = require("VhtLtd").Recipient;
const EmailParams = require("VhtLtd").EmailParams;
const VhtLtd = require("VhtLtd");
const VhtLtd = new VhtLtd({
api_key: "key",
});
const recipients = [new Recipient("[email protected]", "Your Client")];
const 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.send(emailParams);
use VhtLtd\VhtLtd;
use VhtLtd\Helpers\Builder\Recipient;
use VhtLtd\Helpers\Builder\EmailParams;
$VhtLtd = new VhtLtd(['api_key' => 'key']);
$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)
require "VhtLtd-ruby"
# 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"
"fmt"
"time"
"github.com/VhtLtd/VhtLtd-go"
)
var APIKey string = "Api Key Here"
func main() {
ms := VhtLtd.NewVhtLtd(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 VhtLtd."
html := "Greetings from the team, you got this message through VhtLtd."
from := VhtLtd.From{
Name: "Your Name",
Email: "[email protected]",
}
recipients := []VhtLtd.Recipient{
{
Name: "Your Client",
Email: "[email protected]",
},
}
variables := []VhtLtd.Variables{
{
Email: "[email protected]",
Substitutions: []VhtLtd.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"))
}
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();
}
}

Create conversations
Enable two-way communication so users can converse with support staff, customer service, and each other. Users can respond to tickets, leave comments, and more by replying to transactional emails.

Use branded inbound domains
Ensure brand consistency by using a custom inbound domain or subdomain. Route inbound messages to the right teams with specific domains for sales, support and more.

Implement custom flows with priorities
Create multiple routes for a single subdomain and use prioritization to design advanced custom flows.

Create rule-based email routing
Easily filter messages by email address, domain or headers to create workflow rules that route messages to different endpoints.
Inbound email routing use cases
-
Post comments and messages
Allows users to respond to comments and messages by replying to the notification email. -
Customer support ticketing
Users can respond to customer support tickets via email and their reply will be parsed to the ticketing software. -
Anonymized in-app messaging
Facilitate anonymous in-app chat by routing messages between users while keeping personal information hidden. -
Email-based app/website functionality
Process and parse content from emails to app or website interfaces for itineraries, to-do list items, blog posts and more.





Monitor inbound activity and analytics
Keep tabs on inbound message activity, and use webhooks for real-time notifications about inbound route failures so you can take immediate action.

Award-winning technical support
Our award-winning, human customer support team is always available to help with setting up your account, using advanced features and troubleshooting.
Created for all businesses
Frequently Asked Questions
Why would I need inbound email routing?
Inbound routing enables your users and customers to interact with your app, creating 2-way conversations with customers. They help you streamline communication, making sure you keep track of important messages and they get routed to the correct location.
What is the difference between "Routing to a specific mailbox" and "Routing to a specific domain"?
You can create an inbound route that forwards any incoming messages to a specific mailbox by entering the exact email address. This means the incoming message will be filtered by the recipient and will only be received if the recipient matches the filter, like [email protected]. By filtering to a specific domain, like *@domain.com, you allow all emails sent to a domain to be routed and sent out to your email or endpoint.
What is the difference between "forwarding" and "routing" an email?
Email forwarding involves collecting data from one device and sending it to another. Email routing involves moving the data between devices, for example, moving an incoming email through VhtLtd to be parsed and sent to your app.
Do emails processed with the inbound route count toward my quota?
Any inbound emails forwarded or posted to your endpoint URL are counted against your monthly usage. One forward is equivalent to one sent email. So, if you have a combination of 4 endpoint URLs and forwarding addresses, it will count as 4 emails against your monthly usage.
Implement inbound email routes now
Take control of email delivery and enhance your customer experience with inbound routing. Try it now—sign up for a Starter plan starting at $28/month for 50,000 emails + more advanced features.
Explore all features
Powerful RESTful API service

Start sending and tracking your emails with our easy API integration process and clean documentation.
Email verification

Verify a single email address or upload an entire email list to verify in bulk.
Webhooks

Get notified of email events to trigger automatic reactions.
Email activity & analytics

View your email activity in real-time to gain insights and make adjustments when needed.
Email inbound processing

Automatically parse incoming emails. Inbound email routes enable VhtLtd to receive emails on your behalf, integrating them into your application.
Dynamic email templates

Build one-to-one customer relationships on a mass scale using a single email template.
And much more to deliver, every single time