1. Go to this page and download the library: Download erseco/mime-mail-parser library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
erseco / mime-mail-parser example snippets
use Erseco\Message;
// Parse a message from a string
$rawEmail = file_get_contents('/path/to/email.eml');
$message = Message::fromString($rawEmail);
// Or parse from a file directly
$message = Message::fromFile('/path/to/email.eml');
// Optional safety limits (defaults keep ordinary mail working)
use Erseco\ParserOptions;
$options = new ParserOptions(
maxMessageBytes: 10_485_760, // 10 MiB raw message
maxParts: 1000, // leaf MIME parts
maxDepth: 20, // nested multipart depth
maxHeaders: 500, // headers per header block
maxHeaderLineLength: 998, // bytes per header line
maxDecodedPartBytes: 10_485_760
);
$message = Message::fromString($rawEmail, false, $options);
// Exceeding a limit throws Erseco\ParserLimitExceededException
// with getLimitName(), getLimitValue(), and getActualValue().
$message->getHeaders(); // get all headers as array
$message->getHeader('Content-Type'); // get specific header (raw unfolded value)
$message->getContentType(); // 'multipart/mixed; boundary="----=_Part_1_1234567890"'
$message->getFrom(); // 'Service <[email protected]>'
$message->getTo(); // 'John Doe <[email protected]>'
$message->getSubject(); // raw subject (may still contain RFC 2047 encoded words)
$message->getDate(); // DateTime object when the email was sent
// RFC 2047: raw vs decoded headers
// getHeader() / getSubject() keep the raw unfolded value, including encoded-words.
// getDecodedHeader() and the convenience helpers decode B/Q encoded-words to text.
$message->getHeader('Subject'); // '=?UTF-8?B?UmV1bmnDs24gZGUgcHJveWVjdG8=?='
$message->getDecodedHeader('Subject'); // 'Reunión de proyecto'
$message->getDecodedSubject(); // same as getDecodedHeader('Subject')
$message->getDecodedFrom();
$message->getDecodedTo();
$message->getDecodedReplyTo();
$message->getParts(); // Returns array of MessagePart objects
$message->getHtmlPart(); // Returns MessagePart with HTML content
$message->getTextPart(); // Returns MessagePart with Text content
$message->getAttachments(); // Returns array of attachment MessageParts
// Working with message parts
$parts = $message->getParts();
$firstPart = $parts[0];
$firstPart->getHeaders(); // array of all headers for this part
$firstPart->getHeader('Content-Type'); // get specific header
$firstPart->getContentType(); // 'text/html; charset="utf-8"'
$firstPart->getContent(); // transfer-decoded content (no charset conversion)
$firstPart->getContentAsUtf8(); // text/* parts converted to UTF-8 when possible
$firstPart->getCharset(); // charset from Content-Type, or null
$firstPart->isHtml(); // true if it's an HTML part
$firstPart->isText(); // true if it's a text part
$firstPart->isAttachment(); // true if it's an attachment
$firstPart->getFilename(); // name of the file if attachment
// supports filename=, filename*=, and RFC 2231
// continuations (filename*0*=, filename*1*=, …)
$firstPart->getSize(); // size of content in bytes
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.