Features | Installation | Credits
OPcodes's Mail Parser has a very simple API to parse emails and their MIME contents. Unlike many other parsers out there, this package does not require the mailparse PHP extension.
Has not been fully tested against RFC 5322.
- PHP 8.0+
To install the package via composer, Run:
composer require opcodesio/mail-parseruse Opcodes\MailParser\Message;
// Parse a message from a string
$message = Message::fromString('...');
// Or from a file location (accessible with file_get_contents())
$message = Message::fromFile('/path/to/email.eml');
$message->getHeaders(); // get all headers
$message->getHeader('Content-Type'); // 'multipart/mixed; boundary="----=_Part_1_1234567890"'
$message->getFrom(); // 'Arunas <arunas@example.com>
$message->getTo(); // 'John Doe <johndoe@example.com>
$message->getSubject(); // 'Subject line'
$message->getDate(); // `Date:` header as DateTime object
$message->getSize(); // Email size in bytes
$message->getParts(); // array of \Opcodes\MailParser\MessagePart, which can be html parts, text parts, attachments, etc.
$message->getHtmlPart(); // \Opcodes\MailParser\MessagePart containing the HTML body
$message->getTextPart(); // \Opcodes\MailParser\MessagePart containing the Text body
$message->getAttachments(); // array of \Opcodes\MailParser\MessagePart that represent attachments
$messagePart = $message->getParts()[0];
$messagePart->getHeaders(); // array of all headers for this message part
$messagePart->getHeader('Content-Type'); // value of a particular header
$messagePart->getContentType(); // 'text/html; charset="utf-8"'
$messagePart->getContent(); // '<html><body>....'
$messagePart->getSize(); // 312
$messagePart->getFilename(); // name of the file, in case this is an attachment partA guide for contributing is in progress...
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.