Skip to content

eryno/php-mime-mail-parser

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

php-mime-mail-parser

A fully tested mailparse extension wrapper for PHP 5.4+

Latest Version Total Downloads Software License

Why?

This extension can be used to...

  • Parse and read email from Postfix
  • Create webmail
  • Store email information such a subject, HTML body, attachments, and etc. into a database

Is it reliable?

Yes. All known issues have been reproduced, fixed and tested.

We use Travis CI to help ensure code quality. You can see real-time statistics below:

Build Status Coverage Quality Score

How do I install it?

The easiest way is via Composer.

To install the latest version of PHP MIME Mail Parser, run the command below:

composer require php-mime-mail-parser/php-mime-mail-parser

Requirements

The following versions of PHP are supported:

  • PHP 5.4
  • PHP 5.5
  • PHP 5.6
  • PHP 7
  • HHVM

Make sure you have the mailparse extension (http://php.net/manual/en/book.mailparse.php) properly installed:

pecl install mailparse      		#PHP Version = 7
pecl install mailparse-2.1.6		#PHP Version < 7

If you have trouble installing mailparse on Ubuntu, take a look at this tutorial.

Also note that you may need to create /etc/php5/mods-available/mailparse.ini file and include the line extension=mailparse.so. Then run sudo php5enmod mailparse to enable it.

How do I use it?

<?php
// Include the library first
require_once __DIR__.'/vendor/autoload.php';

$path = 'path/to/mail.txt';
$Parser = new PhpMimeMailParser\Parser();

// There are three methods available to indicate which mime mail to parse.
// You only need to use one of the following three:

// 1. Specify a file path to the mime mail.
$Parser->setPath($path); 

// 2. Specify a php file resource (stream) to the mime mail.
$Parser->setStream(fopen($path, "r"));

// 3. Specify the raw mime mail text.
$Parser->setText(file_get_contents($path));

// Once we've indicated where to find the mail, we can parse out the data
$to = $Parser->getHeader('to');             // "test" <test@example.com>, "test2" <test2@example.com>
$addressesTo = $Parser->getAddresses('to'); //Return an array : [[test, test@example.com, false],[test2, test2@example.com, false]]

$from = $Parser->getHeader('from');             // "test" <test@example.com>
$addressesFrom = $Parser->getAddresses('from'); //Return an array : test, test@example.com, false

$subject = $Parser->getHeader('subject');

$text = $Parser->getMessageBody('text');

$html = $Parser->getMessageBody('html');
$htmlEmbedded = $Parser->getMessageBody('htmlEmbedded'); //HTML Body included data

// Pass in a writeable path to save attachments
$attach_dir = '/path/to/save/attachments/';
$Parser->saveAttachments($attach_dir);

// Get an array of Attachment items from $Parser
$attachments = $Parser->getAttachments();

//  Loop through all the Attachments
if (count($attachments) > 0) {
	foreach ($attachments as $attachment) {
		echo 'Filename : '.$attachment->getFilename().'<br />'; // logo.jpg
		echo 'Filesize : '.filesize($attach_dir.$attachment->getFilename()).'<br />'; // 1000
		echo 'Filetype : '.$attachment->getContentType().'<br />'; // image/jpeg
	}
}

?>

Can I contribute?

Feel free to contribute!

If you report an issue, please provide the raw email that triggered it. This helps us reproduce the issue and fix it more quickly.

License

The php-mime-mail-parser/php-mime-mail-parser is open-sourced software licensed under the MIT license

About

Fully Tested Mailparse Extension Wrapper for PHP 5.4+

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%