Download the PHP package actengage/talon without Composer

On this page you can find all versions of the php package actengage/talon. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package talon

Talon (PHP)

Extract the original message from an email reply chain. A PHP port of mailgun/talon, validated against ~42K real-world Python talon outputs at 99.66% parity.

Installation

Requires PHP 8.1+, ext-dom, ext-mbstring. Auto-registers in Laravel via package discovery.

Usage

Facade

When $contentType is null (the default), the body is scanned for HTML block-level tags (<html>, <body>, <div>, <p>, <br>, <table>, <li>, etc.). If any are present the input is treated as HTML; otherwise as plain text. Pass an explicit content type to override.

Service

Lower-level API

For direct access to the text-mode primitives:

What it handles

HTML Plain text
Gmail, Outlook 2003–2013, Zimbra, Windows Mail > quotation blocks (≥3 consecutive)
Top-level <blockquote> On <date>, <person> wrote: in 9 languages
From: / Date: header blocks (text and tail) -----Original Message----- and variants
Known quote-container IDs Multi-line splitters (≤6 lines)
Two-pass for nested forwarded guards Inline replies preserved; forwarded messages skipped

UTF-8 throughout (mb_* for offsets); both \n and \r\n delimiters.

Behaviour & limits

Python parity

This port is intentionally close to mailgun/talon. The implementation preserves:

Validated against the full Active Engagement mailbox dataset (41,977 messages):

Metric Count %
Compared 41,977 100%
Matches 41,835 99.66%
Mismatches 142 0.34%

Remaining mismatches are all pre-existing data artefacts (stored Python results computed against a previous version of the body, or invalid-UTF-8 sequences that PHP/libxml2 and Python/lxml decode differently).

Development

145 Pest tests covering the cutters, splitter detection, marker logic, multilingual splitters, multi-line splitters, inline replies, forwarded-message guards, and end-to-end extraction. The codebase is held to PHPStan level max (with Larastan extensions), formatted with Laravel Pint, and refactor-checked with Rector.

CI runs all four checks in parallel on every push and PR (.github/workflows/ci.yml), with composer / vendor / phpstan / rector caches keyed off composer.lock and the workflow concurrency-grouped per ref.

Releases

Versioning is managed with Changesets. Add a changeset whenever you make a user-facing change:

On push to main, .github/workflows/release.yml opens a "Version Packages" PR. Merging that PR bumps the version, writes CHANGELOG.md, and tags the release. The package is private: true in package.json — no npm publish happens.

Public API

These methods form the stability surface — anything else is internal.

The HtmlQuotations::cut* methods and checkpoint helpers are public for testing but should be considered internal.

License

MIT. Originally derived from mailgun/talon (Apache 2.0).


All versions of talon with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
ext-dom Version *
ext-mbstring Version *
illuminate/support Version ^10.0|^11.0|^12.0|^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package actengage/talon contains the following files

Loading the files please wait ...