✍️
Emaildelivery.com Documentation
EmailDelivery.com
  • FAQ
    • ✍️FAQ
    • 🎬Explainer Video
    • 🤳Why go self-hosted?
    • 🌋Recommended VPS
    • Ⓜ️Velocity MTA FAQ
    • 🌴Amazon SES production access
    • 👋From the founder
  • Features List
    • 🖌️ESP Features
      • 🟢Pabbly Connect
      • 🪝Event Webhooks
    • 🎨Delivery Features
  • install
    • 🤓Racknerd Installation
    • 👩‍💻Generic VPS Installation
    • 🌊Installation video for Digital Ocean droplets
    • 🧠Advanced Installation
  • Common installation issues
    • 🙅Don't use sudo
    • ✋Bind: address already in use
    • 👬Resolving port conflicts with a second IP
    • 😑Hostinger is your registrar
    • 💪Use the ARM build for AArch64/ARM64 CPUs
    • ⭕Oracle Cloud / Amazon Lightsail: "bind cannot assign requested address 8025"
    • 🔗Links in email messages are doing something unexpected
  • Post Installation
    • 🔺Upgrade instructions
    • 💾Backup and Restore
    • 🐳Docker Information
    • 🪵Logging
    • 🚚Moving to a new server
    • 📇Changing the installation domain
    • 🎟️Reset lost administrator password
    • ♻️How to reinstall
    • 🔑Add our SSH keys for support
  • options for adding https
    • 🔐Free Native SSL via Let's Encrypt
    • 🔐Adding HTTPS to email message links
    • 🔐Cloudflare as SSL proxy
    • 📮Transactional SMTP Relay requirements for Cloudflare
    • 🚧Troubleshooting common SSL issues
    • 🔏Native SSL via ZeroSSL
  • Introduction
    • 👥Backend, Frontend, Customers, Users
    • 🧑‍🏫What you can do in the emaildelivery.com backend
    • 👩‍💻Getting ready to send
    • 🔗Understanding the 'White Label Tracking Link'
    • ⚡Connect SMTP Relay
    • 🔌Connect Mailgun API
    • 🔌Connect Sparkpost API
    • 🔌Connect Amazon SES API
    • 📮Postal Routes
    • 📬Send a test message
  • Common email setup issues
    • 🎭"Unconfigured sending domain" during test message
    • 😶Campaign stats are blank
  • Solutions and guides
    • 🌴Getting approved for Amazon SES production access
    • 🔍Google Postmaster Tools
  • Backend Administration
    • ™️Change your logo and favicon
    • 🖍️Change your colors and theme using Custom CSS
    • 🔓Password reset configuration
    • 🖥️Creating Customer Accounts
    • 💻Creating User accounts
    • 🖼️Create default email templates
    • 📋Create default subscriber form templates
    • 🧹Purging mail queues
    • 👥Logging in to the email marketing frontend
    • ⚙️Frontend Settings
      • Profile tab
      • Broadcast alert thresholds
      • Default send limits
      • Header template
    • 📰Customer broadcast report
    • 🆕Changelog
  • Integrations
    • 🟢Pabbly Connect
    • 🟥Zapier
    • 🪝Event webhooks
    • 🅰️API
    • 🖼️Integrating Pixabay into your email campaigns
    • 🏋️WordPress
  • Advanced postal route configuration
    • 🤹‍♂️Contact list domain routing
    • ⚖️Load balancing
  • Control your sending speed
    • 🚦Domain throttles
  • Transactional
    • 🧾Transactional API
    • 📮Transactional SMTP Relay
    • ✅Transactional SMTP Relay: steps to start sending
    • 📁Transactional templates
    • 🏷️Transactional tags
    • 🧀Use SWAKS for testing and troubleshooting
  • What you need to know before you install Velocity MTA
    • 🚫The ESP Platform IP can't be used with the MTA
    • ☝️PTR Records and Reverse DNS
    • 🧬Sending Domain and PTR must match
    • 🔍Google Postmaster Tools
    • 🔗MTA link domain points to the sending IP, not the ESP IP
    • 🤝How to use Velocity MTA as an SMTP Relay
  • 🚀Velocity MTA BASICS
    • 👨‍💻Getting ready to send
    • 🪵Velocity.log is vital to your success
    • 💽Installing Velocity MTA
    • ⚠️Common installation issues
    • ⭕Oracle Cloud and Amazon Lightsail issues
      • 🧑‍🏫What you can do with an MTA Delivery Policy
    • 🦾Adding a server in the backend UI
      • 🔌Server Connect MTA Tab
    • 🆔Configure DKIM
    • 🧙Creating an MTA Delivery Policy
      • Domains Page
      • Settings Page
      • Deferrals Page
      • Servers Page
      • Pushing MTA Policy Changes
    • 📮Create a Postal Route
    • 📬Sending your first test message
    • 🤖IP Warmup automation
    • 🥺Asking major mailbox providers for a reprieve
  • Velocity MTA Solutions
    • 🔐Adding HTTPS to Velocity MTA email message links
    • 👨‍🏫Adding a new dedicated IP to a customer account
    • 🌡️How to warm up a new IP
    • 🕊️Using Dovecot for IMAP
  • 📚Velocity MTA Continuing Education
    • 😡Complaint Feedback Loops
    • 📊IP Delivery Reports
    • 🚦Mail queue management
    • 📥Incoming email MX server
    • ⚔️Customizing delivery for large mailbox providers
    • 🐳Docker information
    • 🧀Troubleshooting with SWAKS
    • 📋Comprehensive CFL / FBL list
  • Troubleshooting MTA related errors in the email marketing interface
    • ⁉️HTTPConnectionPool Max retries exceeded with url: /settings
  • Troubleshooting common issues in the email marketing interface
    • ⁉️Campaign stats are blank
    • ⁉️Pabbly connection errors
    • ⁉️API connections are failing
    • ⁉️The API docs page is blank
    • ⁉️Form submission says Error
    • ⁉️Images are not displaying
  • What to know before using the email marketing platform
    • 📇Contact lists use a flexible architecture
    • 📋Properties are created dynamically
    • 🆔You can personalize on all properties and in URLs
    • 🚮Unsubscribes, complaints, and bounces are account-wide
    • 🎨Drag and drop, WYSIWYG, raw HTML, and reusing templates
    • 🚦You can throttle your sending for each postal route
  • Contact list management
    • ➕Create a contact list
    • ♻️Resubscribe after an unsubscribe
    • 👓List X-Ray
    • 🏷️Contact Tags Manager
    • ⬇️Export your contact list
    • 🚫Uploading a suppression list
    • ⚠️Large suppression files
    • ⛔Exclusion Lists
    • 🇪🇺GDPR Delete & Export
  • Segmenting
    • 🧑‍🏫What you can do with segments
    • ➕Create a segment
    • 🧱Designing your segment
    • 🏷️Tag contacts in a segment
    • ⬇️Export a Segment's Contacts
    • 🆎A/B test using segments
  • Broadcasts
    • 🧑‍🏫What you can do with broadcasts
    • ➕Create a Broadcast
    • ⚙️Broadcast Settings
    • ⌨️Choosing your email composer
    • 🗣️Augment your subject line with a preheader
    • 📬Adding your recipients
    • ⏲️Schedule your Broadcast
    • 🔂Resend to non-openers automation
    • 📰Broadcast Reporting
    • 👯‍♀️Duplicate a broadcast
    • 🏷️Tag contacts who Open your broadcast
    • 💫Resume an incomplete broadcast
    • ⬇️Export Broadcast Openers & Unsubscribes
    • 🛑Cancel a broadcast
    • 🔗Cancel a broadcast funnel trigger
    • 🔧Revise tagging and funnel triggers for sent broadcasts
  • Using the integrated beefree.io email composer
    • 🦶Editing the sticky footer
  • Using the legacy drag & drop email composer
    • ⌨️The Basics
    • 🛠️Component Section Toolbar
    • 🏛️Designing your email - Using Columns
    • 🦶Footer
    • 🐦Social Media Component
  • Funnels
    • 🧑‍🏫What you can do with funnels
    • ➕Create a funnel
    • 🪆Choosing your funnel type
    • 🆔From Name & From Email - editing
    • ⚡Activating your funnel
    • 🔗Trigger an email funnel from a broadcast
    • 🏷️Tag contacts who open your funnel messages
    • ⌨️Choosing your email composer
    • 🗣️Augment your subject line with a preheader
    • 🤖Design your automated email sequence
    • 🚫Contact Suppression and Exclusion
    • 🖇️Adding a funnel to an opt-in subscriber form
  • Subscriber opt-in forms
    • 🧑‍🏫What you can do with forms
    • ➕Create an opt-in form
    • 2️⃣2⃣ Sending to double opt-in contacts
    • 📋Choosing your form type: floating bars, lightboxes,inline naked embedded, slide outs
    • 🔙Exit intent and display rules
    • 📋Adding email and name input boxes to your form
    • Setting the size of your form
    • 📱Configuring how your form displays on mobile devices
    • 📲Configuring your mobile width
    • ✖️Add a close window X to your form
    • ⛔Adding a "No" button that closes your form
    • 🏷️Tag subscribers who opt-in to your form
    • 🙅‍♀️Adding "no thanks" text which closes your form
    • 🔣View your form conversion rate
    • 🔗Connect an existing form to your account
    • 🕸️Adding your form to your website
    • 🤖Add opt-in subscribers to an automated email sequence
  • Reply to ElMejor
  • Reply to ba9607f2e
  • Reply to ricardo108
  • Reply to dasGuteDaran
Powered by GitBook
On this page

Was this helpful?

  1. Velocity MTA BASICS

Installing Velocity MTA

PreviousVelocity.log is vital to your successNextCommon installation issues

Last updated 1 year ago

Was this helpful?

Installation can occur on any Ubuntu Linux server with an AMD64-compatible or ARM64 CPU.

Technically any flavor of Linux is compatible but please just use Ubuntu if you can. We get tons of support tickets, don't make us have to figure out why Alma is doing the weird thing again.

Velocity MTA can run on unlimited remote servers.

Velocity MTA has its own license and can run on unlimited remote servers that all point back to one emaildelivery.com ESP platform installation.

Velocity MTA can run on the same server as the ESP platform.

However, Velocity MTA needs to run on a different ip address than the ESP platform. Find more information on the explanation behind this limitation .

To install and configure the MTA you'll need to familiarize yourself with the following concepts in advance:

Check out some YouTube tutorials if necessary, once you have the ability to connect to a Linux VPS and edit text files, our documentation will give you the exact commands you need to run, so there won't be any missing information that prevents you from completing your MTA setup and configuration.

ChatGPT knows Linux better than any human and is a hugely underrated resource for all Linux questions, technical questions about email delivery, and all of the topics applicable to an MTA.

You'll need your IP address and root password from your server hosting provider for this next step.

Don't copy and paste this exact command, it's just an example using a placeholder, 1.2.3.4 would be the IP of your own server here.

SSH into your server where the IP addresses to be used with the MTA are assigned:

ssh root@1.2.3.4 

When you enter your password you won't see anything on the screen.

This is normal. Your root password isn't shown so that someone looking over your shoulder can't see it.

root@1.2.3.4's password:

Once you've successfully authenticated as the root user you'll find yourself at a prompt that looks something like the below, which will be slightly different for each server provider.

Digital Ocean:

root@ubuntu-s-2vcpu-2gb-amd-sfo3-01:~#  

Racknerd

root@racknerd-b019313:~#

Click the copy icon for the MTA LICENSE

Paste the download link from your AppSumo portal into the command prompt on your Linux server:

The below is only an example, you need to use the real download link from your own AppSumo portal.

root@ubuntu-s-2vcpu-2gb-amd-sfo3-01:~# curl -L https://api.keygen.sh/v1/accounts/5b5914e5-3f64-439e-af80-b4404f2eb853/artifacts/velocity-install.tgz -H 'Authorization: License 7EB0BD-6-A2C170-36-V3' -o velocity-install.tgz

This will download a file called velocity-install.tgz onto your server, you should recognize this process from when you installed the ESP platform previously.

In Linux a tgz file is like a zip file or a rar, it's an archive file.

To extract the Velocity MTA archive run the following command:

tar xzvf velocity-install.tgz 

You should see output similar to the following:

velocity-install/
velocity-install/docker-compose.yml
velocity-install/VERSION
velocity-install/conf/
velocity-install/conf/mta.defaults.conf
velocity-install/images/
velocity-install/images/edcom-velocity.tgz
velocity-install/install_docker_on_ubuntu.sh
velocity-install/restart.sh
velocity-install/load_images.sh
velocity-install/mail/
velocity-install/README
velocity-install/logs/

Velocity MTA is self-contained within one directory called velocity-install, similar to the ESP platform.

Change directory to velocity-install:

cd velocity-install

Creating the conf/mta.conf file

The configuration file for the MTA is mta.conf. You'll need to create it by making a copy of the mta.defaults.conf file to get started.

cp conf/mta.defaults.conf conf/mta.conf 

The mta.defaults.conf file exists so you can 'start over' with a new properly formatted mta.conf file as a troubleshooting step.

Now you're going to need to edit the mta.conf file with nano, a popular Linux text file editor:

nano conf/mta.conf

There are only four settings in mta.conf:

Platform URL

This is the URL to your ESP platform installation, entered exactly as it is in your web browser. https://esp.yourdomain.com if you've enabled SSL or http://esp.yourdomain.com if you haven't reached that step yet in your ESP configuration.

Management IP

This is the IP you used to connect to this server with SSH. The "Primary" or "Main" IP.

The Management IP is NOT the IP of your ESP platform, it's the IP of the server you're on right now where you're doing this MTA configuration.

The Management IP can also be used as a sending IP.

MTA Password

This password must match the password you enter in the ESP platform Velocity MTA Server configuration.

License Key

This is your MTA license key from the https://appsumo.emaildelivery.com portal. Make sure this is not the ESP platform license or you will end up opening a ticket and asking us why the MTA isn't working and be sad.

Save your mta.conf file changes, remember to watch a tutorial on using nano in Linux if this is unfamiliar to you.

Now you need to tell Velocity MTA which IP addresses are available to use on the server for sending email by editing the conf/ipaddresses file:

nano conf/ipaddresses

The format for the conf/ipaddresses file is dead simple: one IP address per line

Your Management IP can be your only sending IP in conf/ipaddresses, or you can request multiple IP addresses from your server provider.

Make sure extra IPs are configured on your server, not just provisioned to your server.

When your server hosting provider provisions you more IPs, they don't automatically "just work" on your server. Someone has to enable them in Linux once they've been assigned. ChatGPT can tell you exactly what to do here, or you can try opening a ticket with your hosting provider and see if they will do it for you, if all else fails there's fiverr. Don't ask us, we'll just ask ChatGPT and tell you what that dude said.

Save your conf/ipaddresses file changes, remember to watch a tutorial on using nano in Linux if this is unfamiliar to you.

conf/receiving_domains

Receiving domains will accept feedback loop complaints, bounces, or email replies and store each message as a text file in the velocity-install/mail/new directory. This is known as Maildir format.

Now you need to tell Velocity MTA which domains to accept email replies for by creating a list of receiving domains.

Do this by editing the conf/receiving_domains

nano conf/receiving_domains

The format for the conf/receiving_domains file is dead simple: one domain per line, including subdomain if applicable:

All domains not in the conf/receiving_domains file will have email delivery attempts refused, otherwise your disk will fill up with malware, spam, and exploit attempts.

Save your conf/receiving_domains file changes, remember to watch a tutorial on using nano in Linux if this is unfamiliar to you.

Next, you'll need to install Docker if you're not using the MTA on your ESP platform server.

As part of the ESP platform install process you installed Docker already, so this step wouldn't be necessary in that case.

We've included a script for automating the Docker installation process on Ubuntu:

./install_docker_on_ubuntu.sh

Now that Docker is ready, load the Velocity MTA Docker Images:

./load_images.sh

You'll see output similar to the following:

Finally, start Velocity MTA:

./restart.sh

Verify Velocity MTA started properly:

docker logs edcom-velocity

Check the log file:

cat logs/velocity.log 

Velocity MTA is running!

You'll need to add your new Velocity MTA server to your ESP Platform to start sending email.

Log into our AppSumo portal where your download links are at

The Management IP is not "reserved", it can be used for sending email with the MTA. However, when run on the same server as the ESP platform, the Management IP must be separate from the IP being used by the ESP platform due to reasons explained in our documentation.

🚀
💽
here
https://appsumo.emaildelivery.com/
elsewhere