Sending a Legacy Transactional Template Email over SMTP

Who should consider using the X-SMTPAPI?

For customers who are unable to use the Web API v3, SMTP or v2 is an acceptable option.

The X-SMTPAPI does not support Dynamic Transactional Templates. For sending Dynamic Transactional Templates you need to use v3 Mail Send.

Before you begin

Before you create and send a legacy transactional template email over SMTP you need to do the following:

Sending a test Email

Sending a test SMTP email with Telnet

Sending a test SMTP email with Telnet is one of the most basic tests you can do. This test is useful in checking the connection and determining if the most basic of problems:

  • Is the server up?
  • Is there a firewall blocking communication?
  • Does the mail server allow for relaying of a particular domain/email address?
  • What SMTP commands does the mail server support?
  • Does the server respond with the correct hostname?
  • Does the connection work outside any third party software or APIs?

Sending an Email

Code Examples with different clients for SMTP

Sending via v2 mail send

Enabling a Template

Make sure that the version of the template you want to use is set to active by using:

To use a legacy template when you send, configure the X-SMTPAPI header of an SMTP message:

  • Enable the templates filter
  • Set the template_id to one of your legacy transactional templates


  "filters": {
    "templates": {
      "settings": {
        "enable": 1,
        "template_id": "5997fcf6-2b9f-484d-acd5-7e9a99f0dc1f"

Set the Body and Subject Tags

The <%subject%> property is used for both Text and HTML templates.

The text property is substituted into the <%body%> of the text template and html is substituted into the <%body%> of the HTML template.

Text or HTML Templates?

It is best practice to provide content for both the html and the text properties in all of your emails.

If the text property is present, but not html, then the resulting email will only contain the text version of the template, not the HTML version.

Enabling a legacy template means that the subject and body content of your message will behave differently.

  • If you want only the message's content to be displayed, populate only the token in the template's field.
  • If you want only the template's content to be displayed, leave the message field (subject or body) empty, and the template will populate.

Advanced options

You can use X-SMTPAPI substitution and section tags in your template's subject and body content, and they will be replaced with the values specified when you send the message.

Substitution Tags

Substitution tags allow you to generate dynamic content for each recipient on your list. When you send to a list of recipients over SMTP API, you can specify substitution tags specific to each recipient.

Section Tags

Section tags allow you to substitute in content in an SMTP message. Section tags are similar to substitution tags but are specific to the message, and not the recipient. Section tags have to be contained within a Substitution tag since SendGrid needs to know which data to populate for the recipient.

Rate this page:

Need some help?

We all do sometimes. Get help now from the Twilio SendGrid Support Team.

Running into a coding hurdle? Lean on the wisdom of the crowd by browsing the SendGrid tag on Stack Overflow or visiting Twilio's Stack Overflow Collective.

Thank you for your feedback!

Please select the reason(s) for your feedback. The additional information you provide helps us improve our documentation:

Sending your feedback...
🎉 Thank you for your feedback!
Something went wrong. Please try again.

Thanks for your feedback!