php解析邮件,Email Reply Parser:PHP解析纯文本的电子邮件内容

EmailReplyParser

80fe12284c8aa81eab7f11bf690879e3.pngdownloads.pngstable.png

PHP7-ready-green.svg

EmailReplyParser is a PHP library for parsing plain text email content,based on GitHub’s email_reply_parser library written in Ruby.

Installation

The recommended way to install EmailReplyParser is through

Composer:

composer require willdurand/email-reply-parser

Usage

Instantiate an EmailParser object and parse your email:

use EmailReplyParser\Parser\EmailParser;

$email = (new EmailParser())->parse($emailContent);

You get an Email object that contains a set of Fragment objects. The Email

class exposes two methods:

getFragments(): returns all fragments;

getVisibleText(): returns a string which represents the content considered

as “visible”.

The Fragment represents a part of the full email content, and has the

following API:

$fragment = current($email->getFragments());

$fragment->getContent();

$fragment->isSignature();

$fragment->isQuoted();

$fragment->isHidden();

$fragment->isEmpty();

Alternatively, you can rely on the EmailReplyParser to either parse an email

or get its visible content in a single line of code:

$email = \EmailReplyParser\EmailReplyParser::read($emailContent);

$visibleText = \EmailReplyParser\EmailReplyParser::parseReply($emailContent);

Known Issues

Quoted Headers

Quoted headers aren’t picked up if there’s an extra line break:

On , wrote:

> blah

Also, they’re not picked up if the email client breaks it up into

multiple lines. GMail breaks up any lines over 80 characters for you.

On ,

wrote:

> blah

The above On ....wrote: can be cleaned up with the following regex:

$fragment_without_date_author = preg_replace(

'/\nOn(.*?)wrote:(.*?)$/si',

'',

$fragment->getContent()

);

Note though that we’re search for “on” and “wrote”. Therefore, it won’t work

with other languages.

Possible solution: Remove “reply@reply.github.com” lines…

Weird Signatures

Lines starting with - or _ sometimes mark the beginning of

signatures:

Hello

--

Rick

Not everyone follows this convention:

Hello

Mr Rick Olson

Galactic President Superstar Mc Awesomeville

GitHub

**********************DISCLAIMER***********************************

* Note: blah blah blah *

**********************DISCLAIMER***********************************

Strange Quoting

Apparently, prefixing lines with > isn’t universal either:

Hello

--

Rick

________________________________________

From: Bob [reply@reply.github.com]

Sent: Monday, March 14, 2011 6:16 PM

To: Rick

Unit Tests

Setup the test suite using Composer:

$ composer install

Run it using PHPUnit:

$ phpunit

Contributing

See CONTRIBUTING file.

Credits

License

EmailReplyParser is released under the MIT License. See the bundled LICENSE

file for details.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值