Scroll to navigation

exchange_emsmdb(4gx) Gromox admin reference exchange_emsmdb(4gx)

Name

exchange_emsmdb(4gx) — http(8gx) processing plugin for the Wire Format Protocol (Outlook/Exchange RPCs).

Description

exchange_emsmdb is a processing plugin for http(8gx) which handles the remote procedure calls for the EMSMDB v1 and AsyncEMSMDB v1 RPC interfaces, as well as OXCROPS as issued by the EcDoRpcExt2 call or the MAPIHTTP EXECUTE call.

EMSMDB is a DCE/RPC interface with just a few RPC calls (6 are still used today). ecDoRpcExt2, a call offered by that interface, takes an opaque byte buffer argument not interpreted by DCE/RPC. That byte buffer contains another protocol, "Remote Operation(s) Encoding Protocol" [OXCROPS]. No reason for this wrapping is given in the OXCRPC spec. MAPIHTTP runs OXCROPS directly without the extra EMSMDB framing.

OXCROPS consists of 130 calls that make up the mailbox protocol.

Configuration directives (gromox.cfg)

The following directives are recognized when they appear in /etc/gromox/gromox.cfg.

The SMTP server to use for outgoing mails. To use the local maildrop queue, set the value to sendmail://localhost. smtp:// is unqueued(!), and if the SMTP server is offline, submissions will be rejected (and mails stick around in Outbox or whatever folder they were submitted from).
Default: smtp://%3a%3a1:25/

Configuration directives (exchange_emsmdb.cfg)

The following directives are recognized when they appear in /etc/gromox/exchange_emsmdb.cfg.

Default: 4
Maximum number of concurrently active notify handles.
Default: (unlimited)
Maximum number of concurrently active EMSMDB sessions. The special value 0 indicates unlimited. The special value 0 indicates unlimited. EMSMDB sessions are not tied to any particular TCP connection; sessions terminate by means of an explicit "ecDoDisconnect" request, or by an inactivity timer (currently 2000 seconds). MFCMAPI sends ecDoDisconnect, but Outlook just breaks off TCP connections, so sessions can pile up.
Default: (unlimited)
Maximum number of concurrently active EMSMDB session owners (users). The special value 0 indicates unlimited.
Default: (unlimited)
Maximum number of pending notifications for an EMSMDB session. [Content tables on search folders can rack up enormous amounts of notifications, so worry not upon seeing W-2305 warnings in the log.]
Default: 1K
The maximum number of EMSMDB sessions (CXH = RPC context handle) for one user. The special value 0 indicates unlimited. EMSMDB sessions are not tied to any particular TCP connection; sessions terminate by means of an explicit "ecDoDisconnect" request, or by an inactivity timer (currently 2000 seconds). Outlook does not send ecDoDisconnect (MFCMAPI does), so sessions can pile up.
Default: 100
The maximum number of object handles (e.g. folders/messages/etc.) each ROP logon (contrary to the name, not EMSMDB session) can have at any one time concurrently. Use 0 to indicate unlimited. On average, Outlook creates six ROP logons per mailbox that it opens.
Default: 500
Enables soft-delete support for folders in private stores. (This feature is experimental.) Public folders always have this on. (Take note that exmdb_provider.cfg:exmdb_private_folder_softdelete also need to be enabled.)
Default: no
0: Deactivate ROP chaining. 1: Enable ROP chaining for OL < 15 and OL >= 16.0.10000 (OL2019, OL2021, OLM365). 2: Enabled for all clients.
Default: 1
Default: 5 minutes
The maximum size for any individual attachment and message. Attempts to store objects larger than this are rejected. The upper limit is 2G, imposed by Exchange protocols.
Default: 64M
Default: 510K
The maximum number of mails that a mailbox is allowed to have.
Default: 1000000
The maximum number of recipients that an e-mail is allowed to have.
Default: 256
Log every incoming OXCROP call and the return code of the operation in a minimal fashion. Level 1 emits ROPs with a failure return code, level 2 emits all ROPs. Note the daemon log level needs to be "debug" (6), too.
Default: 0
Deprecated in favor of gromox.cfg:outgoing_smtp_url.
Deprecated in favor of gromox.cfg:outgoing_smtp_url.
Default: /usr/bin/php /usr/share/gromox/sa/submit.php
Default: (unspecified)

Files

  • data_file_path/notify_bounce/: templates for read/nonread notification mails sent to originators
  • data_file_path/msgchg_grouping/*.txt

Outlook notes

Outlook can be started with the /rpcinfo command-line parameter to display a status table about the RPC connections it has open. Alternatively, one can Ctrl-MouseBtn3 (right button) on the status tray icon to call up a context menu, from which "Connection status..." can be selected for the same.

Signals

When SIGUSR1 is received by this module, it will dump an overview of current EMSMDB sessions to the configured log device (stderr/journal by default). EMSMDB sessions are not linked to any one HTTP connection in particular, and multiple HTTP connections may exercise one session.

Normative references

  • DCERPC / C706: Technical Standard DCE 1.1: Remote Procedure Call by The Open Group, 1997
  • MS-OXCRPC: Wire Format Protocol. This is the document for the EMSMDB RPC interface.
  • MS-OXCROPS: Remote Operations List and Encoding Protocol.

See also

gromox(7), http(8gx)

Gromox