ITADN
grommunio/gromox
grommunio/gromox · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Gromox

Gromox 是 grommunio 的核心群件服务器组件。它能够作为 Microsoft Exchange 的即插即用替代方案。 连接选项包括 RPC/HTTP(Outlook Anywhere)、MAPI/HTTP、EWS、IMAP、POP3、 支持 SMTP 的 LDA,以及包含 MAPI 功能子集的 PHP 模块。组件可以 在多台主机上进行横向扩展。

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

.. |shield-agpl| image:: https://img.shields.io/badge/license-AGPL--3%2E0-green :target: LICENSE.txt .. |shield-release| image:: https://shields.io/github/v/tag/grommunio/gromox :target: https://github.com/grommunio/gromox/tags .. |shield-cov| image:: https://img.shields.io/coverity/scan/gromox :target: https://scan.coverity.com/projects/gromox .. |shield-loc| image:: https://img.shields.io/github/languages/code-size/grommunio/gromox :target: https://github.com/grommunio/gromox/

Gromox 采用模块化设计,由一组组件和程序组成,以提供其功能集。本仓库包含若干手册页,其渲染版本位于 docs.grommunio.com <https://docs.grommunio.com/man/gromox.7.html>_。

编译说明见 doc/install.rst <doc/install.rst>。 此外,<doc/> 目录中还有其他主要偏技术性的文档。

Gromox 依赖其他组件以提供一套合理完整的邮件系统,

  • Admin API/CLI(管理): grommunio Admin API/CLI <https://github.com/grommunio/admin-api>_
  • Admin Web Interface(管理): grommunio Admin Web <https://github.com/grommunio/admin-web>_
  • User Web Interface(Web UI): grommunio Web <https://github.com/grommunio/grommunio-web>_
  • Exchange ActiveSync (EAS)(移动设备): grommunio Sync <https://github.com/grommunio/grommunio-sync>_
  • CalDAV & CardDAV(与客户端的互操作性): grommunio DAV <https://github.com/grommunio/grommunio-dav>_
  • 邮件传输代理,如 Postfix、Exim 等
  • 邮件安全解决方案,如 rspamd 及其他(包括商业方案)

grommunio Appliance 附带这些必备组件,并提供一套可直接运行的 Gromox 安装环境。

Support

支持可通过 grommunio GmbH 及其合作伙伴获得。 详情请参见 https://grommunio.com/。社区论坛位于 <https://community.grommunio.com/>_。

源代码仓库和技术问题跟踪器可在 <https://github.com/grommunio/gromox>_ 找到。

如需直接联系或提供有关安全相关 负责任披露的信息,请联系 dev@grommunio.com <dev@grommunio.com>_。

标准和协议

参见 <doc/protocols.rst>_ 进行讨论。

贡献

编码和社交风格

入乡随俗。

参见 doc/style.rst <doc/style.rst>_ 进行技术深入探讨。

源代码布局

  • exch/:

  • emsmdb/: EMSMDB/OXCROPS 调用的解码器(良好的起点/可 grep 的关键词:rop_ext_pull(EXT_PULL &x, ROP_BUFFER &r) 函数)以及这些调用的处理程序入口点(参见: rop_dispatch

    • ews/: 处理 EWS 请求的逻辑(参见: EWSPlugin::dispatch

    • exmdb/: Information Store 服务器。EXRPC 调用的解码器 位于 lib/exmdb_ext.cpp:exmdb_ext_pull_request;大型 case switch() 函数在 make 期间自动生成到 include/exmdb_dispatch.cpp;邮箱逻辑函数以 可 grep 的子串 BOOL exmdb_server:: 开头。

    • http/: HTTP 服务器

      • HTTP 请求解析器(参见:htparse_rdhead,以及 htparse_rdhead_st near /* 请求头结束 */

      • MSRPC 解析器(参见:pdu_processor_input

    • mh/: OXCMAPIHTTP 请求的处理程序。实际的 邮箱逻辑很少,因为代码转发到 emsmdb/nsp 函数。

    • midb/: 专门用于 gromox-imap/gromox-pop3 的支持服务器,参见 mail_engine_commands。基于文本的 输入协议。

    • mysql_adaptor/: 用户数据库支持函数

    • nsp/: OXNSPI 请求的解码器(参见: exchange_nsp_ndr_pull),以及处理这些请求的逻辑(参见: exchange_nsp_dispatch

    • zcore/: PHP-MAPI 请求的状态保持器。ZRPC 请求的解码器参见 rpc_parser_dispatch,邮箱逻辑参见 ec_error_t zs_

    • authmgr.cpp: 用于在 MySQL/LDAP 之间引导身份验证的组件

    • oxdisco.cpp: AutoDiscover 请求的处理程序

  • lib/: 大规模共享的函数

    • lib/email/: 电子邮件、日历、联系人解析器(RFC 5322, 5545/5546, 6350)

    • lib/mapi/: 主要特定于 MAPI 的数据结构

  • oxcical.cpp: 解析后的 iCalendar 与 MAPI 日历项之间的转换逻辑

    • oxcmail.cpp: 解析后的电子邮件与 MAPI 消息项之间的转换逻辑

    • oxvcard.cpp: 解析后的 vCards 与 MAPI 联系人项之间的转换逻辑

  • mda/: 消息传递代理

    • exmdb_local/ gsp. exmdb_local_hook
  • delivery_app/: 投递代理

    • smtp/: MDA 的 SMTP 协议处理器
  • mra/: 消息检索代理(IMAP、POP3);这些是 midb 客户端(不是 exrpc 客户端),参见 imap_parser_dispatch_cmd2pop3_parser_dispatch_cmd2