Gromox
Quelle: gromox README.
Gromox ist die zentrale Groupware-Serverkomponente von grommunio. Es kann als direkter Ersatz für Microsoft Exchange eingesetzt werden. Zu den Anschlussmöglichkeiten gehören RPC/HTTP (Outlook Anywhere), MAPI/HTTP, EWS, IMAP, POP3, einen SMTP-kompatiblen LDA sowie ein PHP-Modul mit einer Teilmenge der Funktionen von MAPI. Die Komponenten lassen sich über mehrere Hosts hinweg skalieren.
Gromox ist modular aufgebaut und besteht aus einer Reihe von Komponenten und Programmen, die den Funktionsumfang des Systems bereitstellen. Dieses Repository enthält eine Reihe von Handbuchseiten, deren gerenderte Version unter docs.grommunio.com] zu finden ist.
Anweisungen zur Kompilierung finden Sie in doc/install.rst]. Im Verzeichnis doc/] befindet sich außerdem weitere, überwiegend technische Dokumentation.
Gromox ist auf andere Komponenten angewiesen, um ein sinnvolles, vollständiges E-Mail-System bereitzustellen,
- Admin API/CLI (Verwaltung): grommunio Admin API/CLI
- Admin-Weboberfläche (Verwaltung): grommunio Admin Web
- Benutzer-Weboberfläche (Web-UI): grommunio Web
- Exchange ActiveSync (EAS) (Mobile Geräte): grommunio Sync
- CalDAV & CardDAV (Interoperabilität mit Clients): grommunio DAV
- ein Mail-Transfer-Agent wie Postfix, Exim und weitere
- E-Mail-Sicherheitslösungen wie rspamd und andere (einschließlich kommerzieller Lösungen)
Das grommunio Appliance enthält diese wesentlichen Komponenten und verfügt über eine betriebsbereite Installation von Gromox.
Support
Abschnitt betitelt „Support“Support wird von der grommunio GmbH und ihren Partnern angeboten. Weitere Informationen finden Sie unter https://grommunio.com/. Ein Community-Forum finden Sie unter https://community.grommunio.com/.
Das Quellcode-Repository und der technische Issue-Tracker sind unter https://github.com/grommunio/gromox zu finden.
Für direkten Kontakt und die Übermittlung von Informationen zu einer sicherheitsrelevanten verantwortungsvollen Offenlegung wenden Sie sich bitte an [email protected].
Standards und Protokolle
Abschnitt betitelt „Standards und Protokolle“Eine Erläuterung dazu finden Sie unter doc/protocols.rst].
Mitwirken
Abschnitt betitelt „Mitwirken“- https://docs.github.com/en/get-started/quickstart/contributing-to-projects
- Alternativ können Sie die Commits in einen Git-Speicher Ihrer Wahl hochladen oder die Serie mithilfe von git format-patch] als Patchset exportieren und uns den Git-Link bzw. die Patches dann über unsere direkte Kontaktadresse (siehe oben) zukommen lassen.
Programmieren und Sozialverhalten
Abschnitt betitelt „Programmieren und Sozialverhalten“Wenn man in Rom ist, sollte man es den Römern gleichtun.
Quelltext-Layout
Abschnitt betitelt „Quelltext-Layout“exch/:emsmdb/: Decoder für EMSMDB/OXCROPS-Aufrufe (guter Ausgangspunkt/mit grep suchbares Schlüsselwort:rop_ext_pull(EXT_PULL &x, ROP_BUFFER &r)-Funktion) und Handler-Einstiegspunkt für diese Aufrufe (gsp.:rop_dispatch)ews/: Logik zur Verarbeitung von EWS-Anfragen (z. B.:EWSPlugin::dispatch)exmdb/: Der Information Store-Server. Der Decoder für EXRPC-Aufrufe befindet sich inlib/exmdb_ext.cpp:exmdb_ext_pull_request; die große Funktionswitch()wird während make automatisch ininclude/exmdb_dispatch.cppgeneriert; Funktionen der Mailbox-Logik beginnen mit der grepbaren TeilzeichenfolgeBOOL exmdb_server::.http/: HTTP-Server- HTTP-Anfrage-Parser (z. B.:
htparse_rdheadundhtparse_rdhead_stin der Nähe von/* met the end of request header */) - MSRPC-Parser (z. B.:
pdu_processor_input)
- HTTP-Anfrage-Parser (z. B.:
mh/: Handler für OXCMAPIHTTP-Anfragen. Es gibt kaum eigentliche Mailbox-Logik, da der Code an emsmdb/nsp-Funktionen weiterleitet.midb/: Ein Support-Server speziell für gromox-imap/gromox-pop3, siehe z. B.mail_engine_commands. Textbasiertes Eingabeprotokoll.mysql_adaptor/: Unterstützungsfunktionen für die Benutzerdatenbanknsp/: Dekoder für OXNSPI-Anfragen (gsp.:exchange_nsp_ndr_pull) und Logik zur Verarbeitung dieser Anfragen (gsp.:exchange_nsp_dispatch)zcore/: Statusverwalter für Anfragen von PHP-MAPI. Decoder für ZRPC-Anfragen (gsp.rpc_parser_dispatch) und Mailbox-Logik (gsp.ec_error_t zs_)authmgr.cpp: Komponente zur Steuerung der Authentifizierung zwischen MySQL und LDAPoxdisco.cpp: Handler für AutoDiscover-Anfragen
lib/: Funktionen, die in großem Umfang gemeinsam genutzt werdenlib/email/: Parser für E-Mail, Kalender, Kontakte (RFC 5322, 5545, 6350)lib/mapi/: Datenstrukturen, die größtenteils spezifisch für MAPI sindoxcical.cpp: Logik für die Konvertierung zwischen geparsten iCalendar- und MAPI-Kalenderelementenoxcmail.cpp: Logik für die Konvertierung zwischen geparsten E-Mails und MAPI-Nachrichtenelementenoxvcard.cpp: Logik für die Konvertierung zwischen geparsten vCards und MAPI-Kontaktelementen
mda/: Nachrichtenzustellungsagentexmdb_local/gsp.exmdb_local_hookdelivery_app/: Zustellungsagentsmtp/: SMTP-Protokollhandler des MDA
mra/: Nachrichtenabruf-Agenten (IMAP, POP3); hierbei handelt es sich um midb-Clients (keine exrpc-Clients), gsp.imap_parser_dispatch_cmd2undpop3_parser_dispatch_cmd2.