/MailMimeParser

A PHP mail mime parser

Primary LanguagePHPBSD 2-Clause "Simplified" LicenseBSD-2-Clause

zbateson/mail-mime-parser

Standalone, testable and PSR-compliant mail mime parser alternative to PHP's imap* functions and Pear libraries for reading messages in Internet Message Format (RFC 5322, RFC 2822 and RFC 822).

Build Status Code Coverage Scrutinizer Code Quality Total Downloads Latest Stable Version

The goals of this project are to be:

  • Well written
  • Standards-compliant but forgiving
  • Includable via composer
  • Tested where possible

To include it for use in your project, please install via composer:

composer require zbateson/mail-mime-parser

Requirements

MailMimeParser requires PHP 5.4 or newer or HHVM. Tested on PHP 5.4, 5.5, 5.6 and 7 and HHVM 3.4.

Usage

$mailParser = new \ZBateson\MailMimeParser\MailMimeParser();

$handle = fopen('file.mime', 'r');
$message = $mailParser->parse($handle);         // returns a \ZBateson\MailMimeParser\Message
fclose($handle);
// OR:
$message = $mailParser->parse($rawEmailString);

echo $message->getHeaderValue('from');          // user@example.com
echo $message
    ->getHeader('from')
    ->getPersonName();                          // Person Name
echo $message->getHeaderValue('subject');       // The email's subject

echo $message->getTextContent();                // or getHtmlContent()

$att = $message->getAttachmentPart(0);          // first attachment
echo $att->getHeaderValue('Content-Type');      // e.g. "text/plain"
echo $att->getHeaderParameter(                  // value of "charset" part
    'content-type',
    'charset'
);
echo stream_get_contents(                       // get the attached file
    $att->getContentResourceHandle()            // the file is decoded automatically
);

Documentation

License

BSD licensed - please see license agreement.