vaibhavpandeyvpz / phemail
纯PHP编写的MIME解析器,用于解析原始邮件文件(.eml)。
1.3
2023-11-14 06:32 UTC
README
纯PHP编写的MIME解析器,用于解析原始邮件文件(.eml)。
安装
composer require vaibhavpandeyvpz/phemail
使用方法
假设这是一个名为sample.eml
的邮件文件
Mime-Version: 1.0 Message-Id: <6B7EC235-5B17-4CA8-B2B8-39290DEB43A3@vaibhavpandey.com> From: Vaibhav Pandey <contact@vaibhavpandey.com> To: Vaibhav Pandey <me@vaibhavpandey.com> Subject: Testing simple email Date: Sat, 22 Nov 2008 15:04:59 +1100 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit This is simple as f*** plain text email message. Regards, Vaibhav Pandey
您可以按以下方式读取和解析它
<?php $parser = new Phemail\MessageParser(); $message = $parser->parse(__DIR__ . '/sample.eml'); echo $message->getHeaderValue('subject'); # outputs 'Testing simple email' echo $message->getHeaderValue('date'); # outputs 'Sat, 22 Nov 2008 15:04:59 +1100' echo $message->getHeaderValue('content-type'); # outputs 'text/plain' echo $message->getHeaderAttribute('content-type', 'charset'); # outputs 'US-ASCII' echo $message->getContents(); /** * @desc To extract emails from headers, you could use any RFC 822 * internet address parser e.g., pear/mail. */ $addresses = (new Mail_RFC822())->parseAddressList($message->getHeaderValue('to')); foreach ($addresses as $address) { echo 'Name: ', $address->personal, '<br>', 'Email: ', $address->mailbox, '@', $address->host; }
许可协议
请参阅LICENSE.md文件。