Paste a plain-text email and get Markdown

Turn a simple unfolded email header block and plain-text body into a Markdown note.

freeworks offlinenothing uploaded
ToolEmail to Markdown
Input
Output
Put this on your own site

The frame below runs the same code as this page, in the reader's own browser. Nothing is sent to us, and nothing is sent to you.

Pick a dark background and the text and panels follow it, so the frame stays readable on a dark page.

Preview

How it works

Before the first blank row, unfurled Name: value lines become metadata; Subject becomes the H1 and other fields form a table. In the body, four-space indentation becomes a blockquote and convenience patterns link HTTP(S) URLs and simple email-shaped tokens.

  • Without a recognized header block, the source is returned unchanged instead of guessing a body boundary.
  • Subject is kept outside the table because it serves as the document heading.

Worked example

Email with links and addresses
Convert an email with headers, a URL, and an email address to Markdown
Input
											From: [email protected]
To: [email protected]
Subject: Q1 Sprint Planning
Date: Mon, 13 Jan 2025 10:00:00 -0500

Hi Bob,

The sprint backlog is ready at https://example.com/board/q1

Please review and reach out to me or [email protected] with questions.

Best,
Alice
										
Output
												# Q1 Sprint Planning

| Field | Value |
|-------|-------|
| **From** | [email protected] |
| **To** | [email protected] |
| **Date** | Mon, 13 Jan 2025 10:00:00 -0500 |

---

Hi Bob,

The sprint backlog is ready at [https://example.com/board/q1](https://example.com/board/q1)

Please review and reach out to me or [[email protected]](mailto:[email protected]) with questions.

Best,
Alice
											

When to use this

Support mail becomes incident notes, mailing-list posts enter repositories, and project updates preserve selected headers above their body.

Edge cases

  • An RFC 5322 folded header is not unfolded and its continuation can enter the body output.
  • A pipe in a header value is not escaped and can open another Markdown table cell.
  • Sentence punctuation after a URL can be absorbed because the matcher is not a full URI parser.

References