Summary
When an agent replies to a ticket, the outgoing email’s In-Reply-To header is sent empty, even though the correct parent Message-ID is present in References. This causes Gmail (and possibly other clients) to not thread the reply with the original message, so the customer sees the reply as a brand new conversation instead of a continuation of the original thread.
Setup
- Zammad version: 6.5.2
- Installation method: Docker
- Channel type: Gmail connected via IMAP/SMTP
Steps to reproduce
- Send an email from an external Gmail account to a Zammad-monitored address. This creates a new ticket.
- As an agent, reply to the ticket from within Zammad.
- On the customer’s Gmail side, open the reply and check View original / Show original.
Original message headers (customer → Zammad)
Message-ID: <CAPysNDxTj545JEUVv3G4DqHG+ZRL62fzhV_2dBCSaBr9ttazSw@mail.gmail.com>
Subject: testing email thread
Zammad’s reply headers (agent → customer)
Message-ID: <20260827072317.408.3ab28f84-f22c-4b51-af83-d1a19bf54eb4@supportapp.baaboo.com>
In-Reply-To:
References: <CAPysNDxTj545JEUVv3G4DqHG+ZRL62fzhV_2dBCSaBr9ttazSw@mail.gmail.com>
Subject: testing email thread [Ticket#25408]
Observed result: The reply arrives in the customer’s Gmail as a separate, unthreaded conversation.
Expected result: The reply should thread with the original message in the customer’s mailbox.
Question
References is populated correctly with the parent Message-ID, so Zammad clearly has that value available — but it isn’t also being written into In-Reply-To. Is this intentional (e.g. by design, only References is meant to be set), or is this a bug in how outgoing headers are constructed? Happy to open a GitHub issue with a full repro if this isn’t expected behaviour.