Handling out-of-office replies and auto-responders in your app
Auto-replies are not bounces and not engagement. How to recognise them, keep them out of your metrics and avoid email loops when your own app sends mail.

On this page(8 sections)
You send a product announcement and an hour later your inbox fills with replies: "I am out of the office until Monday", "Thank you for your message, we will respond within two business days", "This mailbox is not monitored".
If your system treats those as real replies, bad things follow. Your engagement numbers look healthier than they are, a sales sequence stops because the "customer replied", or two automated systems start answering each other. This guide covers how to recognise auto-replies, what to do with them and how to avoid creating email loops yourself.
If you are looking at this from the human side, covering your own inbox, see covering an inbox during vacation. This post is for people who build the sending side.
Auto-replies are not all the same
Different automatic messages need different handling.
| Type | Example | Sent by | What it means |
|---|---|---|---|
| Out-of-office reply | "I am away until the 14th" | A person's mail client or server | The person is alive, the address works, they are not reading now |
| Auto-acknowledgment | "We received your request, ticket #4821" | A help desk | The message arrived at a monitored system |
| Bounce (delivery failure) | "550 user unknown" | The receiving mail server | The message was not delivered. See hard vs soft bounces |
| Challenge or verification | "Click to confirm you are not a bot" | A spam-protection system | Delivery depends on a human action |
| Mailing list or system notice | "Your message is awaiting moderation" | A list server | The message is held, not read |
A bounce means the address failed. An out-of-office means the address is fine. Treating them the same, for example by suppressing an address because it sent an auto-reply, loses a perfectly good contact.
How to recognise an auto-reply
There is no single field that always works, so combine signals.
Standard headers. RFC 3834 defines Auto-Submitted. A value other than no, such as auto-replied or auto-generated, says an automated process wrote the message. This is the most reliable marker when it is present.
Other common markers.
X-Autoreply,X-AutorespondorX-Auto-Response-Suppress(Microsoft Exchange uses the last to ask others not to auto-reply).Precedence: auto_reply,bulkorjunk, which is older but still seen.- An empty return path (
<>) on the envelope, which is standard for bounces and many system messages. See From, Reply-To, envelope sender and Return-Path. - A
Content-Typeofmultipart/reportwith a delivery-status part, which indicates a bounce report rather than a reply.
Subject and body patterns. Phrases such as "Out of office", "Automatic reply", "Auto-reply", "Away from the office" or translated equivalents. These work as a fallback but produce false positives, so use them only alongside other signals, and never as the only test for a message from a real person.
Context. A reply that arrives within seconds of your send, from a different address than the one you wrote to, or with no quoted original, is more likely automatic.
Put the logic in one function with tests built from real examples, in the languages you serve.
What to do with each type
Out-of-office replies.
- Do not count them as replies, opens or engagement.
- Do not stop a sequence because of one. Pause only if you want to be polite and the message gives a return date.
- Do not suppress the address.
- Do not reply to them.
- Optionally record the return date so a follow-up lands after it.
Auto-acknowledgments. Treat as "delivered and received by a system". They are not an answer, so your conversation is still open.
Bounces. Process through your bounce pipeline, not through reply handling. See a bounce and complaint webhook pipeline.
Challenges. Do not solve them automatically. Suppress or route them for a human decision.
How email loops happen
A loop starts when two automatic systems each treat the other's message as something to answer.
- Your app sends a notification. The recipient's out-of-office replies. Your inbound handler treats it as a customer reply and sends "Thanks, we got your message". Their system replies again, and the cycle continues until someone notices or a rate limit hits.
- Two help desks acknowledge each other's acknowledgments.
- A forwarding rule sends a message back to a list that forwards it again.
Loops can send thousands of messages in an hour and damage your sender reputation.
Rules that prevent loops
- Never auto-reply to an auto-reply. If the incoming message has
Auto-Submittedother thanno, an empty return path or a bulk precedence, do not respond. - Mark your own automatic mail. Add
Auto-Submitted: auto-generatedto system notifications andauto-repliedto your acknowledgments, so other systems can recognise them. AddX-Auto-Response-Suppress: Allfor Microsoft environments where it fits. - Rate limit auto-replies per sender. Send at most one automatic response to the same address in a day.
- Use a different address for automatic mail than for conversations, so a reply can be routed correctly. This is part of the reasoning in replies to transactional email.
- Cap per-thread automation. After a set number of automatic messages in one conversation, stop and escalate to a person.
- Alert on bursts. A sudden rise in inbound mail from one sender is a loop until proven otherwise.
If you send acknowledgments to customers, see writing auto-acknowledgment emails for content that helps without inviting loops.
Keep your metrics honest
Out-of-office replies inflate reply rates and make campaigns look better than they are. Filter them before you calculate anything. Lifecycle email metrics that matter explains why reply and click rates beat opens, and filtering auto-replies is part of making replies a real signal.
In sales or onboarding sequences, a human reply should stop the sequence. An auto-reply should not. The difference decides whether a real prospect keeps hearing from you.
Test the logic
Build a small set of real messages: out-of-office replies in several languages, a help desk acknowledgment, a bounce, a challenge, a human reply that happens to say "I am out of the office tomorrow, can we talk Friday?" and a message from a person with a vacation notice in its signature. Run them through your classifier and check each result. The last two are the traps that cause false positives.
Key takeaways
- Out-of-office replies, acknowledgments, bounces and challenges are different things and need different handling.
- Check
Auto-Submitted, related headers and an empty return path first, and use text patterns only as a backup. - Never count auto-replies as engagement, never suppress an address for sending one and never answer one.
- Mark your own automatic mail, rate limit it and cap it per thread to prevent loops.
Start with Koltrix
Your domain, one inbox, and an API that sends.
A team inbox where AI sorts and drafts (nothing is sent without your click), plus the transactional API and SMTP relay your product sends with. 7 days free, no card.


