horde / mime
MIME library
v3.0.0RC1
2026-05-21 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
This package is auto-updated.
Last update: 2026-05-22 22:28:23 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.