Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run Scan×
Skip to content
VGSources
Blog

Postfix Can Send but Not Receive Email: How to Fix Inbound Mail

Outbound Postfix success does not prove inbound mail works. Trace the receive path from MX DNS and TCP 25 through interfaces, destination maps, restrictions, and final mailbox delivery.
Length10 min Posted Quest giverVGSources Team
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If Postfix sends mail successfully but never receives messages from the Internet, troubleshoot the inbound path separately. External delivery depends on the recipient domain’s MX record, public DNS addresses, TCP port 25 reachability, Postfix’s listening interfaces, destination maps, recipient restrictions, and the final delivery service. Outbound success proves none of those inbound components.

Understand the two independent mail paths

When Postfix sends a message, it acts as an SMTP client and connects outward to another server. When it receives mail, a remote server looks up your domain, opens a new TCP connection to your MX host on port 25, and expects Postfix’s smtpd service to accept the recipient. A working outbound connection therefore does not show that DNS, firewall rules, NAT, port forwarding, or inbound Postfix configuration is correct.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The complete receive path is:

  1. The sender’s server queries the recipient domain’s MX record.
  2. The MX hostname resolves to an A or AAAA address.
  3. The sender opens TCP 25 to that address.
  4. NAT, a firewall, security group, or proxy forwards the connection to the mail host.
  5. Postfix accepts the SMTP session on an externally reachable interface.
  6. Postfix recognizes the domain and recipient through local or virtual destination settings.
  7. Postfix hands the message to the configured local-delivery, virtual-delivery, alias, or filtering service.

Find the first stage that fails instead of changing unrelated settings.

First identify what this Postfix host is supposed to do

Final MX server

A final MX accepts mail addressed to the domain and delivers it to local mailboxes or aliases. The domain’s MX record must point to this host (or to a proxy that forwards to it), and the domain must appear in the appropriate Postfix destination configuration.

Backup MX or inbound relay

A backup MX accepts mail temporarily and forwards it to another system. It still needs publicly reachable TCP 25 and correct relay permissions, but it may not contain users’ mailboxes. A relay can appear to “receive” SMTP while messages remain queued for the primary server.

Outbound relay or submission client

A machine configured with relayhost, or used only by applications and authenticated users, is not intended to accept Internet mail. In that design it is normal for no public MX record to point to the host. Authenticated submission on ports 465 or 587 is a different service from server-to-server SMTP on port 25.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Do not apply final-MX instructions to an outbound-only relay. Confirm the intended architecture before editing Postfix or DNS.

Step 1: Verify the MX record and public addresses

Remote senders do not connect to the hostname you happen to use in Postfix. They query the recipient domain’s MX record and then connect to the hostname returned there. Check the MX record from a resolver outside the server’s network and verify that the MX target has the expected A record and, if you publish IPv6, an appropriate AAAA record.

The address returned by DNS must reach this Postfix instance. If the server is behind NAT, the public address must forward TCP 25 to the internal host. If a mail proxy or gateway is in front, its address belongs in DNS and it must pass the SMTP connection to Postfix. An MX target that resolves to an old address, a private RFC1918 address, or an unrelated web server will prevent delivery even if Postfix itself is healthy.

  • Confirm the recipient domain has an MX record for the intended host.
  • Confirm every MX hostname resolves consistently from public resolvers.
  • Check that the A/AAAA result is the address advertised by your provider or perimeter firewall.
  • Remove stale records and make sure IPv6 is not published unless the IPv6 path is actually configured for SMTP.

DNS changes may be cached according to their TTL. Test the currently published records from more than one external network before treating a change as effective.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Step 2: Test inbound TCP 25 from outside

Run the test from a network that is not the server’s LAN, such as a separate VPS, office connection, or mobile hotspot. Test the MX hostname or its public address on TCP 25. A successful TCP connection should produce an SMTP banner from Postfix or the front-end gateway.

nc -vz mx.example.net 25
# or, where available:
telnet mx.example.net 25

Interpret the result by failure type:

Observed result Likely meaning Where to investigate
Connection timeout Packets are being dropped or routed incorrectly. Provider policy, cloud security group, host firewall, NAT, proxy, routing, or an incorrect public address.
Immediate connection refused The address is reachable but nothing is accepting TCP 25, or a device is actively rejecting it. Postfix listener state, master.cf, local firewall, or front-end gateway policy.
SMTP banner appears The network path and a listener work. Continue with destination, recipient, restriction, and delivery checks.
Connection works only inside the LAN External forwarding or perimeter access is missing. NAT rule, security group, firewall zone, split DNS, or provider filtering.

Do not test port 465 or 587 as a substitute. Those ports normally provide authenticated submission and do not prove that your server can accept unauthenticated server-to-server delivery on port 25.

Step 3: Confirm that Postfix listens on the public interface

The inet_interfaces parameter controls the network addresses on which Postfix listens. A value of loopback-only, or an address bound only to a private interface, allows local testing but prevents Internet senders from connecting. When NAT or a proxy is involved, inspect proxy_interfaces as well.

postconf inet_interfaces proxy_interfaces
ss -ltnp | grep ':25'

Check that the socket shown by ss is bound to the expected address (or to all required addresses), not just 127.0.0.1:25 or an unreachable private address. Then inspect the SMTP service in master.cf. The service may be disabled, commented out, bound to a specific address, or configured to use a nonstandard process or chroot path.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The Postfix documentation defines inet_interfaces as all network interface addresses on which the system should listen. Changes to this parameter require a stop/start rather than only a configuration reload on affected installations. Use the service manager appropriate to your operating system and verify the socket again after the restart.

postconf -n
# After a required restart, verify again:
ss -ltnp | grep ':25'

If a proxy terminates SMTP, Postfix may listen only on the proxy’s internal address while the proxy listens publicly. In that case, verify both listeners and the forwarding rule instead of exposing an internal address directly.

Step 4: Make sure the recipient domain is a Postfix destination

Postfix accepts mail for destinations matched by its local and virtual-domain settings. Inspect the effective values rather than relying on the contents of an unused configuration file.

postconf mydestination virtual_alias_domains virtual_mailbox_domains

Local domains

A domain listed in mydestination is delivered through the local transport, usually to system users or aliases. The host name and any local domain names must be listed intentionally; adding a domain accidentally can cause mail to be accepted on the wrong server.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Virtual alias domains

A domain in virtual_alias_domains uses an alias map to translate incoming addresses. Verify that the exact recipient address has an alias and that the alias target is valid. A domain entry without a recipient mapping can result in rejection or unexpected delivery, depending on the rest of the configuration.

Virtual mailbox domains

A domain in virtual_mailbox_domains uses the configured virtual mailbox maps and delivery service. Confirm that the mailbox entry exists, its path is correct, and the delivery account can write there. A successful SMTP transaction does not guarantee that the mailbox exists or that the delivery service can access it.

Check spelling, capitalization rules, and the complete address at every layer. For example, accepting [email protected] requires both the domain match and a mailbox or alias for user; an MX record alone is not a mailbox definition.

Step 5: Check recipient restrictions without creating an open relay

Postfix must distinguish mail for your destinations from mail that it is merely being asked to relay elsewhere. Inspect the active restriction lists:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
postconf smtpd_relay_restrictions smtpd_recipient_restrictions

Postfix states that either smtpd_relay_restrictions or, on older configurations, smtpd_recipient_restrictions must include at least one of reject or reject_unauth_destination; otherwise Postfix will refuse to receive mail. Preserve appropriate exceptions such as permit_mynetworks and permit_sasl_authenticated, but do not replace the list with a blanket permit.

Removing destination checks can turn a troubleshooting change into an open relay. An open relay lets unauthenticated users send through your server, leading to abuse, queue growth, provider blocks, and possible loss of service. If an external sender receives a 5xx rejection, capture the exact response and determine whether the domain was classified as local, virtual, or unauthorized before changing restrictions.

Step 6: Read the SMTP response and logs together

Start a log watch, send a test message from an unrelated provider, and record the SMTP response and queue ID. Distribution-specific log locations vary; on systems using systemd, this is a useful starting point:

journalctl -u postfix --since '15 minutes ago'
Evidence What it indicates Next check
No connection log at all The message never reached Postfix. MX records, A/AAAA resolution, TCP 25, firewall, NAT, provider policy, and proxy routing.
NOQUEUE: reject Postfix rejected the SMTP session or recipient before queueing. Read the response code and reason; inspect destination maps and restriction lists.
4xx response or status=deferred The message is temporarily delayed, either during receipt or downstream delivery. Read the complete defer reason, retry schedule, DNS result, transport, and remote response.
5xx response A permanent rejection occurred. Correct the named policy, recipient, destination, authentication, or address problem before retrying.
Queued, then local-delivery status Postfix accepted and handed off the message. Inspect the mailbox path, alias target, delivery agent, quota, permissions, and filtering layer.
Delivered locally but absent from the user’s view The final mailbox or filtering layer is hiding or moving the message. Check spam or quarantine handling, folder rules, quota, indexing, and the actual delivery path.

A queue ID lets you follow one message across the log. Do not infer a network failure from a missing mailbox when the log already shows successful local handoff; switch to delivery-agent and mailbox troubleshooting.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Step 7: Check the provider and network perimeter

VPS, cloud, residential, and corporate networks may restrict TCP 25 independently of your operating-system firewall. Some providers block inbound mail, require a support request, or place an SMTP proxy in front of the instance. Confirm that the service tier permits receiving mail and that its security-group or perimeter rule allows inbound TCP 25 from the Internet.

On the host, check firewall rules for both IPv4 and IPv6. A rule that permits IPv4 but drops IPv6 can produce intermittent failures when the MX hostname has both A and AAAA records. If you do not operate IPv6 SMTP, remove the AAAA record or make the IPv6 listener and routing path functional.

Reverse DNS does not determine where an incoming message is delivered, but providers may require a sensible PTR record and matching forward DNS before permitting mail service. Treat such requirements as provider policy, not as a replacement for an MX record or port-25 listener.

Common architectures and the settings they require

Architecture Public DNS Port 25 path Postfix destination and delivery
Direct final MX MX points to this host’s public A/AAAA address. Internet connects directly to the host; firewall permits TCP 25. Domain in mydestination or virtual-domain settings; mailbox or alias exists locally.
Final MX behind NAT MX points to the NAT public address. Router forwards TCP 25 to the internal Postfix address. Postfix listens on the internal interface; NAT and any proxy_interfaces settings are correct.
SMTP proxy or gateway MX points to the gateway’s public name and address. Gateway accepts TCP 25 and forwards SMTP to Postfix. Gateway recipient policy and Postfix destination maps must agree.
Backup MX MX preference sends mail here when the primary is unavailable. Port 25 is publicly reachable. Temporary relay behavior is intentional; forwarding to the primary is authorized and monitored.
Outbound relay or submission host No public MX points here unless it is also an inbound server. Usually accepts authenticated submission, not Internet delivery. relayhost or submission services are configured; lack of inbound mail is expected.

A safe diagnostic command set

Collect the effective configuration and listener state before editing anything:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
postconf -n
postconf inet_interfaces proxy_interfaces mydestination virtual_alias_domains virtual_mailbox_domains smtpd_relay_restrictions smtpd_recipient_restrictions
ss -ltnp | grep ':25'
journalctl -u postfix --since '15 minutes ago'

Compare the output with the intended architecture. Change one layer at a time, reload or restart only as required by the parameter, and repeat the external TCP and SMTP test. Keep a copy of the previous configuration so a failed change can be reverted quickly.

Failure patterns and targeted fixes

Outbound mail works, but external senders time out

Focus on MX resolution, the public address, provider restrictions, security-group rules, NAT, and TCP 25 forwarding. Postfix configuration changes cannot repair a packet that never reaches the host.

External senders connect but receive “Relay access denied”

Verify that the recipient domain is listed in mydestination, virtual_alias_domains, or virtual_mailbox_domains, as appropriate. Keep reject_unauth_destination or another safe destination restriction; do not solve a destination mismatch by permitting all relaying.

Postfix accepts the message but the mailbox remains empty

Use the queue ID and delivery log. Confirm the alias or mailbox map, delivery service, filesystem permissions, quota, and filtering rules. A successful SMTP acceptance is only the beginning of local delivery.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Mail works for one domain but not another

Compare each domain’s MX target, A/AAAA records, destination-map entry, and recipient map. Multi-domain configurations often have a correct listener but an omitted virtual domain or mailbox map entry.

Mail works over IPv4 but not IPv6

Test the AAAA address directly. Repair IPv6 routing, firewall, and Postfix listening settings, or remove the AAAA record until the IPv6 SMTP path is ready.

What a successful final test looks like

  • The public MX query returns the intended hostname.
  • The MX hostname resolves to a reachable public address with a working NAT or proxy path.
  • An external TCP 25 test receives an SMTP banner.
  • Postfix logs the connection and accepts the intended recipient without an unauthorized-relay error.
  • The message receives a queue ID and a final delivery status.
  • The mailbox, alias target, or downstream relay contains the message.

Test from outside the server’s network and use a sender at an unrelated provider. Local loopback tests can succeed while the public path remains blocked.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.