exchange_emsmdb

Name

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 interprted 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

The usual config file location is /etc/gromox/exchange_emsmdb.cfg.

async_threads_num
Default: 4
average_handles
Default: 1000
average_mem
Default: 4K
emsmdb_max_cxh_per_user
The maximum number of RPC context handles any one user can have at any one time.
Default: 100
emsmdb_max_hoc
A value used for sizing of internal hash tables. It does not directly affect the number of handles a user can open, but the total number of handles in the entire emsmdb system.
Default: 10
emsmdb_max_obh_per_session
The maximum number of object handles each session can have at any one time (e.g. folders/messages/etc. open simultaneously). There is one session for each mailbox opened.
Default: 500
mailbox_ping_interval
Default: 5 minutes
mail_max_length
Default: 64M
max_ext_rule_length
Default: 510K
max_mail_num
The maximum number of mails that a mailbox is allowed to have.
Default: 1000000
max_rcpt_num
The maximum number of recipients that an e-mail is allowed to have.
Default: 256
rop_debug
Log every incoming OXCROP call and the return code of the operation in a minimal fashion to stderr. Level 1 emits RPCs with a failure return code, level 2 emits all RPCs.
Default: 0
separator_for_bounce
Default: ;
smtp_server_ip
SMTP server hostname or address to contact for outgoing mail.
Default: ::1
smtp_server_port
SMTP server TCP port number to connect to for outgoing mail.
Default: 25
submit_command
Default: /usr/bin/php /usr/share/gromox/sa/submit.php
x500_org_name
Default: (unspecified)

Files

  • data_file_path/notify_bounce/: response templates for when mail cannot be delivered
  • data_file_path/msgchg_grouping/.txt*

Outlook notes

Outlook can be started with the /rpcinfocommand-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.

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)