mapi(7)
π Name π
mapi β Definition for "Messaging Application Programming Interface"
okay bestie, yes β this is the mapi(7) page from the Gromox developer reference, and we're about to get into the whole "MAPI" identity crisis. Buckle up, it's giving acronym lore π
β¨
π Definition π
MAPI (Messaging API) can have many different meanings. As abstracta:
- The concept of the hierarchial organization into containers, tables, contents and properties. Typical containers are stores and folders; typical contents are messages, recipients, attachments.
- More concrete variations, such as the set of "well-known" properties like, for example, subject, modification date, body, etc., and the semantics expected of them.
- Optionally, the profile configuration structure present in some MAPI client implementations, comprised of profiles, providers, services, profile sections, sessions and their associated properties. A server generally does not know or need to know about these.
- A specification of types and functions to make use of any of these concepts in a programming language.
As an implementation or part thereof:
- (Seemingly the most common meaning of "MAPI"!) The MSMAPI interface for programming in C and/or C++ that comes with the Windows operating system/Office package, with types like
IMAPIFolderandIMessage, functions likeMAPILogonExorIMessage::GetProperties, and identifiers likePR_SUBJECT. - The Office VBA interface for programming in VisualBasic, with types like
Outlook.MailItem, object properties likeMailItem.Subject. - The collection of wire protocols used for communication with Exchange Server. It has colloquially been referred to as
MAPI/RPCorMAPI protocol, but detail-oriented readers will get to know the actual parts instead: the Remote Operations (ROP/OXCROPS) protocol, theEMSMDB v1protocol, theNSPIprotocol, the MAPI Extensions For HTTP protocol (MAPIHTTP,MH), and all the serialized representations of MAPI data structures.
π¦ Gromox implementation π¦
Real talk: Gromox does not offer an MSMAPI-style programming API for the C or C++ language environments. The types and functions exposed in .h/.hpp files are intended for its own use only, and they are not considered public β let alone constant over time. No cap, that's the whole situation π
Gromox does offer interfacing at the network level, bestie β e.g. via exchange_emsmdb(4gx)/http(8gx) for the Exchange protocol formats, or via exmdb_provider(4gx) and zcore(8gx) using its own wire formats. Slay π
And it offers a somewhat MSMAPI-resembling interface for programming in PHP. This is a set of 119 freestanding functions that implement the concepts of stores, folders, messages, etc. Obsessed with the range, honestly π«Ά
source/version: Gromox; date: not listed on this page, so no invented date, periodt. This was the mapi(7) manual β signing off with good vibes and zero made-up facts ππ
π¦ where this page comes from
- alpine 3.24: grommunio-gromox-doc 3.6-r0 Β· AGPL-3.0-or-later
- π the page's license: CC-BY-SA-4.0 or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms