PHP code example of benpoulson / php-mime-mail-parser

1. Go to this page and download the library: Download benpoulson/php-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/ */

    

benpoulson / php-mime-mail-parser example snippets




$path = 'path/to/email.eml';
$parser = new PhpMimeMailParser\Parser();

// 1. Specify a file path (string)
$parser->setPath($path); 

// 2. Specify the raw mime mail text (string)
$parser->setText(file_get_contents($path));

// 3. Specify a php file resource (stream)
$parser->setStream(fopen($path, "r"));

// 4.  Specify a stream to work with mail server (stream)
$parser->setStream(fopen("php://stdin", "r"));

$rawHeaderTo = $parser->getHeader('to');
// return "test" <[email protected]>, "test2" <[email protected]>

$arrayHeaderTo = $parser->getAddresses('to');
// return [["display"=>"test", "address"=>"[email protected]", false]]

$rawHeaderFrom = $parser->getHeader('from');
// return "test" <[email protected]>

$arrayHeaderFrom = $parser->getAddresses('from');
// return [["display"=>"test", "address"=>"[email protected]", "is_group"=>false]]

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

$stringHeaders = $parser->getHeadersRaw();
// return all headers as a string, no charset conversion

$arrayHeaders = $parser->getHeaders();
// return all headers as an array, with charset conversion

$text = $parser->getMessageBody('text');
// return the text version

$html = $parser->getMessageBody('html');
// return the html version

$htmlEmbedded = $parser->getMessageBody('htmlEmbedded');
// return the html version with the embedded contents like images


$parser->saveAttachments('/path/to/save/attachments/');
// return all attachments saved in the directory (rectory (exclude inline attachments)


$attachments = $parser->getAttachments();
// return an array of all attachments (ments (exclude inline attachments)

foreach ($attachments as $attachment) {
    echo 'Filename : '.$attachment->getFilename().'<br />';
    // return logo.jpg
    
    echo 'Filesize : '.filesize($attach_dir.$attachment->getFilename()).'<br />';
    // return 1000
    
    echo 'Filetype : '.$attachment->getContentType().'<br />';
    // return image/jpeg
    
    echo 'MIME part string : '.$attachment->getMimePartStr().'<br />';
    // return the whole MIME part of the attachment
}

sudo apt install php-cli php-mailparse

sudo apt install php-cli php-pear php-dev php-mbstring
pecl install mailparse

git clone https://github.com/php/pecl-mail-mailparse.git
cd pecl-mail-mailparse
phpize
./configure
sed -i 's/#if\s!HAVE_MBSTRING/#ifndef MBFL_MBFILTER_H/' ./mailparse.c
make
sudo mv modules/mailparse.so /usr/lib/php/AAAAMMDD/
echo "extension=mailparse.so" | sudo tee /etc/php/7.1/mods-available/mailparse.ini
sudo phpenmod mailparse

myhook unix - n n - - pipe
  				flags=F user=www-data argv=php -c /etc/php5/apache2/php.ini -f /var/www/test.php ${sender} ${size} ${recipient}