A Windows desktop application for analyzing email headers from .msg (Outlook) and .eml files. Visualizes routing paths, checks SPF/DKIM/DMARC authentication, detects spam indicators, and flags security concerns.
Built with WPF and .NET 8. Ships as a single self-contained executable with no installer required.
- Dual format support — Analyze
.msg(Outlook) and.eml(standard MIME) files - Drag and drop — Drop files directly onto the window for instant analysis
- Raw header input — Paste headers from any source for quick analysis
- Security analysis — SPF, DKIM, and DMARC authentication verification
- Routing visualization — Hop-by-hop path with timestamps and delay calculation
- Spam detection — Extracts scores from SpamAssassin, Barracuda, and other systems
- Security warnings — Flags authentication failures, domain mismatches, unusual patterns
- Export — HTML, JSON, CSV, and plain text output formats
- Dark/Light theme — Follows Windows system theme automatically
- Single executable — No install, no DLLs, no runtime dependencies
Download the latest release from the Releases page.
| Variant | Description | Requirements |
|---|---|---|
EmailHeaderAnalyzer-self-contained.exe |
Single file, runs anywhere | None |
EmailHeaderAnalyzer-tight.exe |
Smaller single file | .NET 8 Desktop Runtime |
EmailHeaderAnalyzer-Setup.exe |
Self-extracting installer | .NET 8 Desktop Runtime |
Requires the .NET 8.0 SDK.
git clone https://github.com/mcoelho/EmailHeaderAnalyzer.git
cd EmailHeaderAnalyzer
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=trueThe executable will be in bin\Release\net8.0-windows\win-x64\publish\.
For all build variants (normal, tight, self-contained, installer):
.\build.ps1See Building for details.
- File input — Click "Browse" or drag-and-drop a
.msg/.emlfile - Text input — Switch to the "Text Input" tab and paste raw email headers
- Analyze — Results populate automatically on file drop, or click "Analyze"
- Export — Select a format (HTML / JSON / CSV / TXT) and click "Export"
| Section | Details |
|---|---|
| Summary | From, To, Reply-To, Subject, Date, Message-ID |
| Routing | Received headers as a hop table with calculated delays |
| Authentication | SPF, DKIM, DMARC results (PASS / FAIL / NONE) |
| Spam Scores | Extracted from X-Spam-Status, X-Spam-Score, X-Barracuda-Spam-Score |
| Warnings | Auth failures, domain mismatches, high spam scores, unusual delays |
| Attachments | List of attachment filenames and sizes |
- Verbose — Include all headers, including custom X-headers
- JSON Output — Display results as formatted JSON
- .NET 8.0 SDK
- 7-Zip (only needed for the installer variant)
.\build.ps1 [-Configuration Release] [-Clean] [-SkipInstaller]Produces four variants under Release/:
| Folder | Description |
|---|---|
normal/ |
Framework-dependent multi-file build |
tight/ |
Trimmed single-file (requires .NET Desktop Runtime) |
self-contained/ |
Full self-contained single-file (~60 MB) |
installer/ |
7-Zip self-extracting installer with icon |
.\publish-single-exe.ps1- Code signing — The executable can be signed with enterprise certificates
- AppLocker — Compatible with Windows application control policies
- No dependencies — Self-contained build has zero external requirements
- No network — Fully offline analysis, no data leaves the machine
- Group Policy — Deploy via SCCM, Intune, or file share
| Component | Library |
|---|---|
| UI Framework | WPF (.NET 8) |
| MSG Parsing | MsgReader 6.0.11 |
| EML Parsing | MimeKit 4.16.0 |
| JSON | Newtonsoft.Json 13.0.4 |
Contributions are welcome. See CONTRIBUTING.md for guidelines.