registerParameter('hostname', Util::getServerHostName()); $context->registerService('userFolder', static function (ContainerInterface $c) { $userContainer = $c->get(IServerContainer::class); $uid = $c->get('UserId'); return $userContainer->getUserFolder($uid); }); $context->registerService(Favicon::class, function (ContainerInterface $c) { $favicon = new Favicon(); $favicon->setDataAccess( $c->get(FaviconDataAccess::class), ); return $favicon; }); $context->registerServiceAlias(IAvatarService::class, AvatarService::class); $context->registerServiceAlias(IAttachmentService::class, AttachmentService::class); $context->registerServiceAlias(IMailManager::class, MailManager::class); $context->registerServiceAlias(IMailSearch::class, MailSearch::class); $context->registerServiceAlias(IMailTransmission::class, MailTransmission::class); $context->registerServiceAlias(ITrustedSenderService::class, TrustedSenderService::class); $context->registerServiceAlias(IUserPreferences::class, UserPreferenceService::class); $context->registerServiceAlias(IDkimService::class, DkimService::class); $context->registerServiceAlias(IDkimValidator::class, DkimValidator::class); $context->registerEventListener(AddMissingIndicesEvent::class, OptionalIndicesListener::class); $context->registerEventListener(BeforeImapClientCreated::class, OauthTokenRefreshListener::class); $context->registerEventListener(DraftSavedEvent::class, DeleteDraftListener::class); $context->registerEventListener(DraftMessageCreatedEvent::class, DeleteDraftListener::class); $context->registerEventListener(OutboxMessageCreatedEvent::class, DeleteDraftListener::class); $context->registerEventListener(MailboxesSynchronizedEvent::class, MailboxesSynchronizedSpecialMailboxesUpdater::class); $context->registerEventListener(MessageFlaggedEvent::class, MessageCacheUpdaterListener::class); $context->registerEventListener(MessageFlaggedEvent::class, SpamReportListener::class); $context->registerEventListener(MessageFlaggedEvent::class, HamReportListener::class); $context->registerEventListener(MessageFlaggedEvent::class, MoveJunkListener::class); $context->registerEventListener(MessageDeletedEvent::class, MessageCacheUpdaterListener::class); $context->registerEventListener(MessageSentEvent::class, AddressCollectionListener::class); $context->registerEventListener(MessageSentEvent::class, InteractionListener::class); $context->registerEventListener(NewMessagesSynchronized::class, MessageKnownSinceListener::class); $context->registerEventListener(NewMessagesSynchronized::class, NewMessagesNotifier::class); $context->registerEventListener(NewMessagesSynchronized::class, NewMessagesSummarizeListener::class); $context->registerEventListener(SynchronizationEvent::class, AccountSynchronizedThreadUpdaterListener::class); $context->registerEventListener(UserDeletedEvent::class, UserDeletedListener::class); $context->registerEventListener(NewMessagesSynchronized::class, FollowUpClassifierListener::class); $context->registerEventListener(OutOfOfficeStartedEvent::class, OutOfOfficeListener::class); $context->registerEventListener(OutOfOfficeEndedEvent::class, OutOfOfficeListener::class); $context->registerEventListener(OutOfOfficeChangedEvent::class, OutOfOfficeListener::class); $context->registerEventListener(OutOfOfficeClearedEvent::class, OutOfOfficeListener::class); $context->registerEventListener(OutOfOfficeScheduledEvent::class, OutOfOfficeListener::class); $context->registerEventListener(TaskSuccessfulEvent::class, TaskProcessingListener::class); $context->registerMiddleWare(ErrorMiddleware::class); $context->registerMiddleWare(ProvisioningMiddleware::class); $context->registerDashboardWidget(ImportantMailWidget::class); $context->registerDashboardWidget(UnreadMailWidget::class); $context->registerSearchProvider(FilteringProvider::class); // Added in version 4.0.0 $context->registerMailProvider(MailProvider::class); $context->registerNotifierService(Notifier::class); $context->registerSetupCheck(MailTransport::class); $context->registerSetupCheck(MailConnectionPerformance::class); // bypass Horde Translation system Horde_Translation::setHandler('Horde_Imap_Client', new HordeTranslationHandler()); Horde_Translation::setHandler('Horde_Mime', new HordeTranslationHandler()); Horde_Translation::setHandler('Horde_Smtp', new HordeTranslationHandler()); } #[\Override] public function boot(IBootContext $context): void { } }