<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
php-mime-mail-parser / php-mime-mail-parser example snippets
$path = 'path/to/email.eml';
$parser = new PhpMimeMailParser\Parser();
// 1. Either specify a file path (string)
$parser->setPath($path);
// 2. or specify the raw mime mail text (string)
$parser->setText(file_get_contents($path));
// 3. or specify a php file resource (stream)
$parser->setStream(fopen($path, "r"));
// 4. or specify a stream to work with a mail server (stream)
$parser->setStream(fopen("php://stdin", "r"));
$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)
// Save all attachments with the strategy ATTACHMENT_DUPLICATE_SUFFIX (default)
$parser->saveAttachments('/path/to/save/attachments/', false, PhpMimeMailParser\Parser::ATTACHMENT_DUPLICATE_SUFFIX);
// return all attachments saved in the directory: logo.jpg, logo_1.jpg, ..., logo_100.jpg, YY34UFHBJ.jpg
// Save all attachments with the strategy ATTACHMENT_RANDOM_FILENAME
$parser->saveAttachments('/path/to/save/attachments/', false, PhpMimeMailParser\Parser::ATTACHMENT_RANDOM_FILENAME);
// return all attachments saved in the directory: YY34UFHBJ.jpg and F98DBZ9FZF.jpg
// Save all attachments with the strategy ATTACHMENT_DUPLICATE_THROW
$parser->saveAttachments('/path/to/save/attachments/', false, PhpMimeMailParser\Parser::ATTACHMENT_DUPLICATE_THROW);
// return an exception when there is attachments duplicate.
$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
$stream = $attachment->getStream();
// get the stream of the attachment file
$attachment->save('/path/to/save/myattachment/', PhpMimeMailParser\Parser::ATTACHMENT_DUPLICATE_SUFFIX);
// return the path and the filename saved (same strategy available than saveAttachments)
}