horde / mime
MIME library
v3.0.0beta4
2026-04-29 00:00 UTC
Requires
- php: ^7.4 || ^8
- horde/exception: ^3 || dev-FRAMEWORK_6_0
- horde/mail: ^3 || dev-FRAMEWORK_6_0
- horde/stream: ^2 || dev-FRAMEWORK_6_0
- horde/stream_filter: ^3 || dev-FRAMEWORK_6_0
- horde/support: ^3 || dev-FRAMEWORK_6_0
- horde/text_filter: ^3 || dev-FRAMEWORK_6_0
- horde/text_flowed: ^3 || dev-FRAMEWORK_6_0
- horde/translation: ^3 || dev-FRAMEWORK_6_0
- horde/util: ^3 || dev-FRAMEWORK_6_0
Requires (Dev)
- ext-intl: *
- horde/nls: ^3 || dev-FRAMEWORK_6_0
- horde/test: ^3 || dev-FRAMEWORK_6_0
- horde/text_filter: ^3 || dev-FRAMEWORK_6_0
- mikepultz/netdns2: ^2.0
Suggests
- horde/nls: ^3 || dev-FRAMEWORK_6_0
- horde/text_filter: ^3 || dev-FRAMEWORK_6_0
- mikepultz/netdns2: ^2.0
- dev-FRAMEWORK_6_0 / 3.x-dev
- v3.0.0beta4
- v3.0.0beta3
- v3.0.0beta2
- v3.0.0beta1
- v3.0.0alpha7
- v3.0.0alpha6
- v3.0.0alpha5
- v3.0.0alpha4
- v3.0.0alpha3
- 3.0.0alpha2
- 3.0.0alpha1
- v2.14.1
- v2.14.0
- v2.13.2
- v2.13.1
- v2.13.0
- v2.12.0
- 2.11.4
- 2.11.3
- 2.11.2
- 2.11.1
- 2.11.0
- 2.10.3
- 2.10.2
- 2.10.1
- 2.10.0
- 2.9.5
- 2.9.4
- 2.9.3
- 2.9.2
- 2.9.1
- 2.9.0
- 2.8.1
- 2.8.0
- 2.7.0
- 2.6.1
- 2.6.0
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.5
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.5
- 2.3.4
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.9
- 2.2.8
- dev-feat/mime-psr4-phase1
- dev-fix/backport-bytestream-fixes
- dev-fix/remove-deprecated-listheaders-dependency
- dev-chore/gitignore-improvements
- dev-feat/migrate-netdns2
- dev-FRAMEWORK_5_2
- dev-master
This package is auto-updated.
Last update: 2026-04-29 19:21:10 UTC
README
MIME message handling library for PHP 8.2+.
Provides immutable value objects for building, parsing and rendering RFC 2822/2045 MIME messages.
Installation
composer require horde/mime
Quick Start
use Horde\Mime\MessageBuilder; use Horde\Mime\MessageRenderer; use Horde\Mime\MimeParser; use Horde\Mime\PartBuilder; // Compose a message $builder = new MessageBuilder(); $builder->setFrom('sender@example.com') ->setTo('rcpt@example.com') ->setSubject('Hello') ->setBody('Plain text body', flowed: true) ->addAttachment('/path/to/file.pdf'); $composed = $builder->build(); $raw = MessageRenderer::render($composed->part, $composed->headers); // Parse a message $part = MimeParser::parse($rawMessage); echo $part->fullType(); // e.g. "multipart/mixed" echo $part->children[0]->body; // first child's decoded body // Build parts directly $part = PartBuilder::text('Hello world')->build(); $html = PartBuilder::html('<p>Hello</p>')->build(); $attachment = PartBuilder::attachment($data, 'report.pdf', 'application/pdf')->build();
Documentation
License
LGPL 2.1 - see LICENSE for details.