Getting an email thread into ChatGPT without the noise
Getting past the limitsLast checked
Short answer
Copy the thread as text rather than uploading the .eml or .msg file. A .msg is an Outlook binary that has no readable text to extract, and an .eml arrives wrapped in routing headers and encoded attachment data. Strip the signatures and the quoted history, keep one sender and date line above each message, and paste it oldest first.
An email thread is not one document. It is twenty short documents, most of which quote the previous nineteen, packed in metadata no human has ever read. Get that structure right on the way in and ChatGPT handles threads very well. Hand over the raw file and you spend the conversation explaining what it is looking at.
Why the mail file is the wrong starting point
OpenAI describes what it accepts as "All common file extensions for text files, spreadsheets, presentations, and documents." Mail files are not common documents in that sense, and the two formats fail in different ways.
.msg is Outlook's own binary container. Open one in a text editor and you get noise with a few readable fragments floating in it. Renaming it to .txt changes nothing, because the problem is not the extension, it is that the words are not stored as plain text.
.eml has the opposite problem. It is plain text already, so it generally goes through and the message is genuinely in there. So are the routing headers, the MIME boundaries, and every attachment encoded as base64, which can be thousands of random-looking characters standing in for a logo in somebody's signature.
Neither is worth fighting when the text is one copy away.
Forwarding, and what it is actually good for
There is nothing to forward to. OpenAI does not publish an email address that accepts mail into a chat, so forwarding only moves the thread around your own mailbox.
Forwarding to yourself is still the fastest way to gather a thread. Most clients build the forward as one message with every reply stacked inside it in order, sender and date on each. That is one place to copy from instead of twenty, with the ordering already done.
What to strip
| Cut this | Why |
|---|---|
| Quoted history under each reply | The largest single win. A twenty message thread where each reply quotes the last one contains the opening message twenty times. |
| Signature blocks | Job title, office address, phone, four social links, repeated on every message by every participant. |
| Legal disclaimers | The confidentiality paragraph adds nothing and appears on every reply in the thread. |
| Routing headers | Only present if you went the .eml route. Received, DKIM, Message-ID and the rest are for mail servers. |
| Unsubscribe and tracking footers | Noise on anything that came from a system rather than a person. |
| Inline logos and images | Retrieval from documents is text only, except Enterprise, so these were never going to be read anyway. |
The repetition matters beyond length. Ask what was said about pricing, and a model looking at the same paragraph quoted nine times reads it as the centre of the thread rather than as one remark somebody made in March.
Gmail does some of this for you
The "..." button that hides trimmed content is hiding exactly the quoted history you wanted gone. Copy with it collapsed and the stripping is done. Print views tend to expand everything instead, which is why copying usually gives a cleaner result than printing to PDF.
Keep who said what, and when
The one thing never to strip is the attribution. Without it a thread becomes a run of paragraphs with no owner, and almost every useful question about a thread is a question about who.
Reduce each mail header to a single line and keep it:
From: Sam Okafor, 14 March, 09:12
Then check the order. Most clients show newest first, ChatGPT reads top to bottom, and a thread read backwards produces answers in which a decision appears to precede the discussion of it. Say what it is in the first line:
This is an email thread between four people, oldest message first.
Expand every message
Collapsed messages are not included in a copy, and you will not notice the gap until an answer is missing something.
Paste into a plain text editor first
Paste without formatting, then copy again from there. That drops the HTML tables, the tracking pixels and the logos in one move.
Delete the repeats
Signatures, disclaimers, quoted history. This is where most of the size goes.
Order it oldest first, attribution intact
One line of sender and date above each message.
Paste it, or save as .txt and upload
Short threads go straight in the message box. Anything over about 1,500 words becomes an attachment whether you meant it to or not, so save it as a file deliberately.
When the thread is too long
Cleaned up, most threads are small. A year of correspondence with one client is often ten or twenty thousand words, a small fraction of the 2 million tokens a document is allowed.
The limit that actually bites is the message box, and not in the way people expect. Paste more than 10,000 characters and ChatGPT turns the paste into an attachment rather than putting it in the text field, which spends an upload from your daily allowance instead of saving one. That is roughly 1,500 words. Past it, either accept the attachment, use Show in text field to force the text back inline, or send the thread in parts that each stay under the threshold.
Whole mailbox exports are a different problem. Hundreds of threads at once will pass the token cap, and the answer there is to split by thread or by month.
Questions worth asking a thread
Not "summarise this". A thread summary reads like the thread, only shorter.
What was agreed, and where?
What was actually agreed in this thread, and in which message? Quote the line.
Who owes what?
List every commitment anyone made, with the person and the date if one was given. Say "no date given" where there is not one.
What changed?
Did anyone's position change over the course of this thread? Show the before and the after.
What was never answered?
Which direct questions were asked and never answered?
That last one is the strongest, because absences are close to invisible when you read a thread yourself. A question that fell off the end of a busy week is exactly what a reader with no memory of the week is good at spotting.
Before you paste somebody else's mail
Mail is the most personal thing most people upload. It carries other people's addresses, phone numbers, and things they wrote assuming a small audience.
Worth a second of thought
Deleting the chat no longer deletes the file. It stays in your Library until you remove it under Settings then Storage, and is then purged 30 days after deletion. If the thread is a work matter, check what your organisation allows before it leaves the mailbox, and replace names with initials where the names are not what your question is about.
The short version
Copy the thread, do not upload the mail file. Strip signatures, disclaimers and quoted history, keep one sender and date line per message, and put it oldest first. Paste a short thread, upload a long one as .txt, split anything larger than that. Almost every complaint about ChatGPT being vague on an email thread comes from feeding it the same message twenty times with no idea who sent any of them.
Common questions
Can ChatGPT read an .eml file?
Usually, because .eml is plain text underneath and there is readable content in it. What comes along with the message is every routing header and any attachment encoded as base64, which is a wall of random-looking characters. Copying the message body out is cleaner and takes less time than tidying up afterwards.
Can ChatGPT open a .msg file from Outlook?
Treat that as a no. A .msg is a proprietary binary container rather than a text file, so there is nothing readable to extract even if the upload is accepted. Open it in Outlook and save as text, or copy the body into the chat.
Can I forward an email to ChatGPT?
OpenAI does not publish an address that accepts forwarded mail into a chat, so there is nothing to forward to. Forwarding is still useful as a first step: send the whole thread to yourself and you get one message containing everything, which is much easier to copy than clicking through twenty.
Do I really need to remove the quoted replies?
It is not required and it is worth doing. In a long thread the quoted history is often more than half the characters, and repetition changes the answer as well as the length, because a paragraph that appears nine times reads as the centre of the conversation.
Keep reading
What file types can ChatGPT read in 2026? 7 fail silently
ChatGPT reads 4 file families and OpenAI publishes no extension list. 7 uploads go through cleanly and give it nothing to read, with the fix for each.
Paste the text or upload the file?
Pasting is a message, not an upload, so no daily, rolling or storage cap touches it. But paste over 10,000 characters and ChatGPT converts it to a file anyway.
How to split a long document for ChatGPT
Keep each part under 10,000 characters, cut at section boundaries, and send the wait-for-all-parts instruction first. Past 10,000 a paste becomes an upload.