Coder Social home page Coder Social logo

php-mime-mail-parser's Introduction

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" <[email protected]>, "test2" <[email protected]>
$addressesTo = $Parser->getAddresses('to'); //Return an array : [[test, [email protected], false],[test2, [email protected], false]]

$from = $Parser->getHeader('from');             // "test" <[email protected]>
$addressesFrom = $Parser->getAddresses('from'); //Return an array : test, [email protected], false

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

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

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

$stringHeaders = $Parser->getHeadersRaw();	// Get all headers as a string, no charset conversion
$arrayHeaders = $Parser->getHeaders();		// Get all headers as an array, with charset conversion

// 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!

git clone git clone https://github.com/php-mime-mail-parser/php-mime-mail-parser
cd php-mime-mail-parser
composer install
./vendor/bin/phpunit

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.