Sending via SMTP

Omnivery supports sending messages using SMTP submission. SMTP submission is a great option for systems that support sending via a custom SMTP server. It is ideal for integrations where implementing an API would be time-consuming or expensive.

Sending using APIs should always be preferred as it provides much more efficient and comfortable integration for developers.

Omnivery supports sending via SMTP. Our servers at smtp.omnivery.net are listening on port 587. We support insecure connections, but we strongly recommend upgrading to TLS encryption using the STARTTLS command.

Domain setup

Make sure you have your sending domains set up first. Please read the documentation on setting up domains.

Setting up credentials

Sending messages using SMTP requires authentication with the correct credentials. Before you start, make sure you have the correct domain selected in the top domain selection menu. SMTP user credentials are managed in the Credentials menu on the SMTP users tab. You will see a list of existing SMTP users here and have the ability to add new ones if your account has sufficient rights.

Click the Add user button and you will be presented with a dialog to enter the desired username (in the form of an email address), password, and note (to help you identify individual user accounts).

SMTP credentials

The email address you enter as a username does not necessarily have to be a working email address. Use of email addresses in domains under your control is strongly recommended.

Requirements

The SMTP communication must meet the following minimum requirements:

  • AUTH LOGIN command must be performed to authenticate the session using credentials
  • MAIL FROM address must be from the sending domain, e.g., if your sending domain is ov.emaildemos.com, the address passed in the command must be @ov.emaildemos.com.
  • RCPT TO command must be issued at least once. If multiple RCPT TO commands are issued, then all individual recipients will receive the same message but will be tracked independently.

The DATA transfer of the message content must conform to RFC5322. In addition to the standard, we have the following requirements:

  • Only one From header is allowed. While the standard technically permits multiple From addresses, this is not supported by many large mailbox providers and would result in delivery issues.
  • Only one To header is allowed. Multiple recipients should be separated by a comma in the single To header.
  • Only one Cc header is allowed. Multiple recipients should be separated by a comma in the single Cc header.
  • Only one Subject header is allowed.

The From header address MUST be aligned with the sending domain, e.g., if your sending domain is ov.emaildemos.com, then your From header address must be either @ov.emaildemos.com or @emaildemos.com.

  • MIME headers provided in DATA that do not conform to our standards or are in conflict with our standard headers will be removed or replaced.

  • Senders MUST honor the 4xx and 5xx SMTP response codes as respectively defined by the SMTP standard. 4xx temporary failures should be retried at a later time with a minimum interval of 1 minute. 5xx permanent failures MUST NOT be retried, as such errors will not result in a different outcome no matter how many times they are retried.

Passing message options

When sending a message via SMTP, you can pass additional sending options via custom MIME headers listed in the table below.

Header Description
X-OV-Tag Tag string used for aggregating stats. See Tagging for more information. You can mark a message with several categories by setting multiple X-OV-Tag headers.
X-OV-testmode Enables sending in test mode. Pass yes if needed. See Sending in Test Mode.
X-OV-Track Toggles tracking on a per-message basis. See Tracking Messages for details. Pass yes or no.
X-OV-tracking_click Toggles click tracking on a per-message basis. Overrides domain-level setting. Pass yes or no.
X-OV-tracking_open Toggles open tracking on a per-message basis. Overrides domain-level setting. Pass yes or no.
X-OV-Require-TLS Use this header to enforce TLS encryption during message delivery.
X-OV-Recipient-Variables Use this header to substitute recipient variables referenced in the message.
X-OV-Variables Use this header to attach custom JSON data to the message.
X-OV-Template Template filename to use to generate message content.
X-OV-Template-Variables Use this header to pass JSON data to the template. Unlike X-OV-Variables, data passed in this header will not be passed in the message headers.
X-OV-Callback-URL Set the webhook URL to post event data. Setting the URL at message level overrides the domain setting.
X-OV-Callback-Format Set the format of webhook calls to use. Supported formats are bloomreach, mailgun.

Message security

Errors and attacks are not uncommon, and we do our best to protect your account. Check out how we deduplicate messages and how you can further secure your domain.