← Blog/Deliverability

What a mail transfer agent (MTA) is and why it decides deliverability

October 15, 2026·6 min read·By MailPilot

A mail transfer agent is the software that moves a message between mail servers using SMTP. It is the only component in the chain that talks to the receiving provider, which means it owns the things the receiver judges you on: the IP you connect from, the name you announce, whether you negotiate TLS, how you retry after a temporary failure, and how fast you push.

The four roles in a mail path

ComponentStands forExampleJob
MUAMail user agentGmail web, Outlook, Apple MailComposes the message, hands it to a submission server
MSAMail submission agentsmtp.gmail.com:587Accepts authenticated submissions, applies policy, signs DKIM
MTAMail transfer agentPostfix, Exim, SES, SendGridRelays the message server-to-server over port 25, queues and retries
MDAMail delivery agentDovecot LDA, provider storageWrites the message into the recipient's mailbox

In practice the MSA and MTA are often the same process with two listeners, and large providers collapse all of this into one system. The distinction still matters when you are debugging: a failure at submission is yours to fix in configuration, while a failure at relay is a conversation between your MTA and the receiver.

MTA vs SMTP

SMTP is the protocol — the grammar of EHLO, MAIL FROM, RCPT TO, DATA, and the three-digit reply codes. An MTA is a program that speaks it. Saying "my SMTP is slow" usually means "my MTA's queue is backed up" or "the receiver is throttling my MTA".

Ports worth knowing:

PortUseNotes
25MTA-to-MTA relayBlocked outbound by most consumer ISPs and many clouds
587Authenticated submission with STARTTLSWhat your app or client should use
465Authenticated submission, implicit TLSRe-standardised; fine to use
2525Unofficial alternative submission portOffered by some providers when 587 is blocked

How the MTA moves a message

  1. Accepts the message from submission, assigns a queue ID, and writes it to disk.
  2. Looks up the recipient domain's MX records and sorts them by preference.
  3. Connects to the best MX on port 25 and sends EHLO yourhost.example.com.
  4. Offers STARTTLS if the receiver advertises it, and negotiates a certificate.
  5. Sends the envelope and the message body, then reads the final reply code.
  6. On 2xx, logs delivery and drops the message from the queue.
  7. On 4xx, keeps the message and retries on a backoff schedule — typically minutes, then hours, for up to several days.
  8. On 5xx, gives up and generates a delivery status notification (a bounce) back to the envelope sender.

That 4xx versus 5xx distinction is the whole bounce model. 450 4.2.1 mailbox temporarily disabled means retry. 550 5.1.1 user unknown means remove the address. Treating a 4xx as permanent throws away deliverable mail; treating a 5xx as temporary builds the bounce rate that gets you blocked.

What the MTA controls that affects placement

  • The connecting IP and its PTR record. Receivers check that the IP has a reverse DNS name, and that the name resolves back to the same IP (forward-confirmed reverse DNS). A missing or generic PTR — ec2-203-0-113-7.compute.amazonaws.com — is one of the most common silent causes of rejection.
  • The `EHLO`/`HELO` name. It should be a fully qualified hostname you control that matches the PTR. Announcing localhost or an internal name is a classic misconfiguration.
  • TLS. Opportunistic TLS on outbound is table stakes now, and both Google and Yahoo expect it from bulk senders. MTA-STS and DANE govern inbound to your domain, not outbound, but a receiver with a strict MTA-STS policy will refuse an unencrypted connection from you.
  • Message formatting. A valid Message-ID, a single From header, a Date header, correct MIME structure. Google's bulk sender requirements call out RFC 5322 conformance explicitly, and malformed messages get rejected before any content scoring happens.
  • Rate and concurrency per destination. A good MTA lets you cap connections and messages per hour per receiving domain. Pushing 5,000 messages at one provider in a minute reads as an attack, and you get 421 responses or a temporary block.
  • Bounce and feedback handling. The MTA must parse DSNs and feed a suppression list. An MTA that keeps retrying hard bounces is generating your next blocklist listing.
  • DKIM signing. Usually done at submission, and it must survive whatever the MTA does to the message afterwards. An MTA that rewrites headers or re-encodes the body after signing breaks DKIM.

The MTA's role in warm-up

IP and domain reputation are built by the receiving provider, but they are *fed* by your MTA's behaviour. A warm-up is, mechanically, a rate policy: start low per destination, raise the ceiling daily, and react to 4xx responses by backing off rather than retrying harder. If your MTA has no per-destination throttle, you cannot really warm an IP — you can only hope.

This is also where new infrastructure goes wrong fastest. A brand-new IP with no history, a fresh domain, and an MTA configured to deliver as fast as the queue allows will hit throttling on day one and interpret it as a bug.

MTA software, briefly

  • Postfix — the default choice for self-hosted relay. Readable configuration, good per-destination rate controls.
  • Exim — long-standing, highly configurable, common on cPanel hosts.
  • OpenSMTPD — small and auditable, with a terse configuration.
  • Haraka — Node.js, plugin-driven, popular when you need to script policy.
  • Commercial high-volume MTAs — PowerMTA and Momentum exist in the enterprise bulk-sending world.
  • Cloud sending services — Amazon SES, SendGrid, Mailgun, Postmark run the MTA for you and expose an API or an SMTP endpoint. You give up low-level control and gain IP pools, feedback loop handling and suppression management.

For almost everyone sending business email, the right answer is the last category. Running your own MTA on a new IP means building reputation from zero while also being responsible for PTR, TLS, queue tuning and abuse handling.

What not to do

  • Do not run an MTA on a residential or unknown-reputation IP.
  • Do not leave port 25 open as a relay — open relays are found and listed within hours.
  • Do not set retry intervals aggressively short; it converts a soft defer into a block.
  • Do not send marketing and transactional streams through the same MTA configuration and the same domain. Separate the streams so a campaign cannot take your password resets down with it.
  • Do not change MTA, IP or sending domain the week before a large send.

MailPilot works at the layer above this: it warms mailboxes over OAuth or SMTP/IMAP — including SendGrid, Amazon SES, Mailgun, Postmark and custom SMTP — verifies SPF, DKIM and DMARC on the delivered message, and measures per-provider inbox placement, so you can see whether your MTA's behaviour is translating into inbox or into spam.

MailPilot

Ready to reach the inbox every time?

Automated email warmup across real peer mailboxes. Live inbox placement monitoring. Free 7-day trial - no credit card required.

Start free trial
Reach the Inbox, Every Time
Connect unlimited inboxes for warmup. Free 7-day trial, no credit card.
Try for Free
WORKS WITH
OZOHO
inbox placement99.2%
free trial7-day
companies trust us340+

Start for free - no credit card required.

Get started freeBook a demo