Why an out-of-office reply isn't a real signal
An out-of-office message is auto-generated by the recipient's mail system, not a human decision to engage. RFC 3834 defines conventions for these automatic responses specifically so receiving systems can distinguish them from genuine replies. Counting one as a 'replied' engagement event misrepresents what actually happened.
Detecting an out-of-office programmatically
The most reliable signal is the Auto-Submitted header, which compliant auto-responders are expected to set (commonly to a value like 'auto-replied'). Not every system sets it correctly, so a fallback heuristic — checking the subject line and body for common out-of-office phrasing — catches some of what the header misses, though less reliably.
What not to do when one arrives
Marking the contact as 'replied' and treating the sequence as complete is the most common mistake — it silently ends outreach based on a signal that says nothing about actual interest. Firing the next scheduled follow-up immediately is the opposite mistake, since it ignores the fact that the recipient is explicitly unavailable right now.
What to do instead
Pause the sequence rather than continuing or ending it. Store the message as an auto-reply classification, distinct from both 'no response' and 'human reply' states. If the auto-reply text includes a parseable return date, scheduling a review for shortly after that date is a reasonable way to pick the sequence back up without guessing.
Working the Tuesday-return scenario
A prospect's automatic vacation reply states a return date of next Tuesday. Rather than treating this inbound message as engagement, the sequence pauses, the message is logged as an auto-reply, and a review is scheduled for a day or two after Tuesday — giving the recipient time to actually catch up before another message arrives.
Building this into the reply-state model
The underlying fix is structural: the system's model of inbound messages needs at least three states — no reply, auto-reply, and human reply — rather than a single binary 'replied' flag. Without that distinction, an out-of-office message and a genuine response are indistinguishable to every downstream rule that depends on reply state.
Avoiding false positives in detection
A genuine human reply that happens to mention being 'away from the office next week' as context shouldn't be misclassified as an automatic response just because it contains similar wording to a typical out-of-office message. Leading with the Auto-Submitted header as the primary signal, and treating text-pattern matching as a lower-confidence fallback only, reduces this kind of misclassification.
Extended absences need different handling
A one-week vacation reply and a parental-leave or extended-absence auto-reply covering several months call for different follow-up behavior. A short pause-and-resume makes sense for the former; for a multi-month absence, it's often more appropriate to suppress the sequence for a longer window or flag the contact for manual review rather than scheduling an automatic resume date that's still far in the future.
Keeping this simple for a small sender
A full auto-reply classification system with return-date parsing and automated review scheduling is more infrastructure than every small sender needs immediately. At minimum, checking the Auto-Submitted header and pausing the sequence on a match covers the majority of cases without requiring natural-language date extraction — the more sophisticated handling described above is worth building once volume justifies the investment, not necessarily on day one.
What matters most is simply not treating an automatic reply as genuine engagement — even a manual, occasional review of flagged out-of-office messages is far better than silently marking them as a completed, successful contact.
Why this classification matters beyond just this one message
Every misclassified auto-reply that gets counted as a genuine response quietly distorts every metric downstream of it — reply rate, sequence effectiveness, even decisions about which messaging or list segment is working best. Getting this one classification right has a small but real effect on the reliability of every other measurement the system produces.
As sending volume grows, revisiting this classification logic periodically is worth doing, since auto-responder formats and header conventions do shift over time across different mail systems, and a detection rule tuned for today's common patterns can gradually lose accuracy without anyone noticing.
Even a rough version of this handling — checking one header, pausing on a match — is worth shipping early rather than waiting to build the fully-featured version, since the cost of getting it wrong compounds with every sequence that runs before the fix goes in.
Getting this basic version working correctly, and expanding it later as volume grows, is a reasonable sequencing of effort for a small team without dedicated engineering resources to spare.
Simple, correctly-applied classification beats an elaborate system that never gets built at all.
Whatever detection method is used, the goal stays the same: don't let an automated response quietly count as a real conversation with a real person.
Field checklist
- Check the Auto-Submitted header first to identify automatic out-of-office replies.
- Use subject/body heuristics as a fallback, since not every auto-responder sets the header correctly.
- Never count an out-of-office message as a genuine engaged reply.
- Pause the sequence rather than ending it or firing the next touch immediately.
- Parse a stated return date when present and schedule a review shortly after it.
- Model reply state with at least three values — no reply, auto-reply, human reply — not a single flag.
Primary sources
Standards and provider policies can change. These links are the reference points used for this field note.
- RFC 9051 — IMAP4rev2IETF / RFC Editor — Mailbox flags, UIDs, BODY.PEEK and IMAP4rev2 behavior.