mathsgod/eml2html

Convert EML files to self-contained HTML with base64-embedded inline images

Maintainers

Package info

github.com/mathsgod/eml2html-php

pkg:composer/mathsgod/eml2html

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-04-15 04:05 UTC

This package is auto-updated.

Last update: 2026-04-15 04:07:10 UTC


README

A PHP library to convert EML files into self-contained HTML, with all inline images embedded as base64 data URIs.

Requirements

Installation

composer require mathsgod/eml2html

Usage

Convert from a file

use Eml2Html\Converter;

$converter = new Converter();
$html = $converter->convertFile('/path/to/email.eml');

file_put_contents('output.html', $html);

Convert from a string

use Eml2Html\Converter;

$converter = new Converter();
$eml = file_get_contents('/path/to/email.eml');
$html = $converter->convertString($eml);

How it works

  1. Parses the EML file using php-mime-mail-parser.
  2. Extracts the HTML body (Quoted-Printable and charset decoding handled automatically).
  3. Collects all inline attachments and maps each Content-ID to a base64 data URI.
  4. Replaces every cid: reference in the HTML (including the cid:<id> bracketed variant emitted by Microsoft Word/Outlook) with the corresponding data URI, producing a fully self-contained HTML file.

API

Converter::convertFile(string $path): string

Reads the EML file at $path and returns self-contained HTML.
Throws \InvalidArgumentException if the file cannot be read.

Converter::convertString(string $eml): string

Accepts raw EML content as a string and returns self-contained HTML.

License

MIT