Skip to content

Groupware server backend for the grommunio Distribution, supporting MAPI/HTTP, RPC/HTTP, EWS, IMAP, POP3 protocols, PHP-MAPI bindings, and import from PST/OST/MSG/CDFV2/TNEF, EML/ICAL/VCF, Kopano, Zarafa

License

Notifications You must be signed in to change notification settings

grommunio/gromox

Repository files navigation

Gromox

Gromox is the central groupware server component of grommunio. It is capable of serving as a drop-in replacement for Microsoft Exchange. Connectivity options include RPC/HTTP (Outlook Anywhere), MAPI/HTTP, EWS, IMAP, POP3, an SMTP-speaking LDA, and a PHP module with a MAPI function subset. Components can scale-out over multiple hosts.

shield-agpl shield-release shield-cov shield-loc

Gromox is modular and consists of a set of components and programs to provide its feature set. This repository includes a number of manual pages, for which a rendered version is at docs.grommunio.com.

Instructions for compilation are in doc/install.rst. There is also other, mostly technical, documentation in the doc/ directory.

Gromox relies on other components to provide a sensibly complete mail system,

The grommunio Appliance ships these essentials and has a ready-to-run installation of Gromox.

Support

Support is available through grommunio GmbH and its partners. See https://grommunio.com/ for details. A community forum is at https://community.grommunio.com/.

The source code repository and technical issue tracker can be found at https://github.com/grommunio/gromox.

For direct contact and supplying information about a security-related responsible disclosure, contact dev@grommunio.com.

Standards and protocols

See doc/protocols.rst for a discussion.

Contributing

Coding and social style

When in Rome, do as the Romans do.

Source layout

  • exch/:
    • emsmdb/: Decoder for EMSMDB/OXCROPS calls (good starting point/grepable keyword: rop_ext_pull(EXT_PULL &x, ROP_BUFFER &r) function) and handler entrypoint for these calls (gsp.: rop_dispatch)
    • ews/: Logic for handling EWS requests (gsp.: EWSPlugin::dispatch)
    • exmdb/: The Information Store server. Decoder for EXRPC calls is in lib/exmdb_ext.cpp:exmdb_ext_pull_request; the big case switch() function is autogenerated during make into include/exmdb_dispatch.cpp; mailbox logic functions begin with the grepable substring BOOL exmdb_server::.
    • http/: HTTP server
      • HTTP request parser (gsp.: htparse_rdhead, and htparse_rdhead_st near /* met the end of request header */)
      • MSRPC parser (gsp.: pdu_processor_input)
    • mh/: Handler for OXCMAPIHTTP requests. There is little actual mailbox logic, since the code forwards to emsmdb/nsp functions.
    • midb/: A support server specifically for gromox-imap/gromox-pop3, gsp. mail_engine_commands. Text-based input protocol.
    • mysql_adaptor/: User database support functions
    • nsp/: Decoder for OXNSPI requests (gsp.: exchange_nsp_ndr_pull), and logic to handle those (gsp.: exchange_nsp_dispatch)
    • zcore/: State keeper for requests from PHP-MAPI. Decoder for ZRPC requests gsp. rpc_parser_dispatch, and mailbox logic gsp. ec_error_t zs_)
    • authmgr.cpp: component for directing authentication between MySQL/LDAP
    • oxdisco.cpp: Handler for AutoDiscover requests
  • lib/: functions shared on a large scale
    • lib/email/: Parser for e-mail, calendar, contacts (RFC 5322, 5545, 6350)
    • lib/mapi/: Data structures mostly specific to MAPI
      • oxcical.cpp: Logic for conversion between parsed iCalendar and MAPI calendaring items
      • oxcmail.cpp: Logic for conversion between parsed e-mail and MAPI messaging items
      • oxvcard.cpp: Logic for conversion between parsed vCards and MAPI contact items
  • mda/: Message Delivery Agent
    • exmdb_local/ gsp. exmdb_local_hook
    • delivery_app/: Delivery Agent
    • smtp/: SMTP protocol handler of the MDA
  • mra/: Message Retrieval Agents (IMAP, POP3); these are midb clients (not exrpc clients), gsp. imap_parser_dispatch_cmd2 and pop3_parser_dispatch_cmd2.

About

Groupware server backend for the grommunio Distribution, supporting MAPI/HTTP, RPC/HTTP, EWS, IMAP, POP3 protocols, PHP-MAPI bindings, and import from PST/OST/MSG/CDFV2/TNEF, EML/ICAL/VCF, Kopano, Zarafa

Topics

Resources

License

Stars

Watchers

Forks

Contributors 24

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy