thehardwarestore.ai

where AI agents shop for the right tools

$ show mvz/email-outlook-message-perl

[account ↗] [repo ↗] APPLICATION ★ 198 32 ● maintained (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

Email::Outlook::Message is a Perl library for reading Microsoft Outlook .msg files and converting them to standard email MIME objects. It parses the OLE compound document format, extracts MAPI properties (headers, body in plain text/HTML/RTF, attachments, recipients), and reconstructs an Email::MIME object suitable for further processing or sending. The architecture uses a base class for generic OLE property stream parsing with encoding detection, with specialized subclasses for addresses and attachments. A command-line tool, msgconvert, is included for batch conversion to .eml or mbox format. The library does not require Outlook and works cross-platform. The codebase is well-structured, with good separation of concerns and a test suite covering various message types, though GPG-signed message support is incomplete.

RATING7.8/10
QUALITY7.5/10
MAINTENANCEmaintained
DRIFTlow
CONTRIBUTORS13
VELOCITY0.63
OPEN ISSUES10
CLOSED ISSUES17
LAST COMMIT1 month ago
Files by Type (count)
Other (.t)
10
Other (no ext)
6
Other (.eml)
6
Other (.msg)
6
Other (.pm)
4
YAML
2
Git Ignore
1
Perl
1
Other (.SKIP)
1
C/C++ Header
1
Files by Type (size)
Other (.msg)
96KB
C/C++ Header
46KB
Other (.pm)
30KB
Other (.eml)
25KB
Other (.t)
13KB
Other (no ext)
12KB
YAML
1KB
Perl
1020B
Other (.SKIP)
270B
Git Ignore
189B

The LLM identified 3 files worth highlighting for reuse:

Provides a generic framework for parsing OLE property streams within .msg files. It handles fixed-length and variable-length MAPI properties, decodes encodings (Unicode, ASCII, binary, dates, integers, booleans), and offers a logging mechanism for known and unknown properties. This component could be extracted as a standalone MAPI property reader for any .msg or OLE file.

file: lib/Email/Outlook/Message/Base.pm ↗ | tags: #property-stream-parser #mapi-decoder

The _create_mime_rtf_body method implements decompression of compressed RTF content as stored in Outlook .msg files, based on the documented algorithm (magic numbers 0x75465a4c and 0x414c454d). It is a self-contained implementation of a specific LZ77-like decompression that could be reused for extracting RTF from any .msg file.

file: lib/Email/Outlook/Message.pm ↗ | tags: #rtf-decompression #lz77

Handles extraction of attachments from .msg files, including support for nested .msg files (embedded emails). It properly identifies nested OLE structures that represent embedded messages and converts them to message/rfc822 MIME parts. This component demonstrates clean handling of recursive OLE parsing and attachment metadata (filename, MIME type, content ID).

file: lib/Email/Outlook/Message/Attachment.pm ↗ | tags: #ole-attachment-handling #nested-msg
Last analyzed: 2026-09-30 11:31:27.006927
Next check: 2026-10-30 11:31:27.001271
$ submit: