• Bug
  • EAS Clients erhalten keine read Updates bei öffentlichen Ordnern

Ich habe einen Public Folder für den Zugriff via EAS im Admin GUI freigegeben. Wenn in diesem Public Folder eine neue Email eingeht (über eine Regel dorthin verschoben) und ich diese Email im Outlook oder Webmail als gelesen markiere, dann bekommt das EAS Gerät / Handy die "gelesen" Markierung nicht mit. Die Email bleibt dort dauerhaft auf "ungelesen".
Das tritt nur bei einem Public Folder auf. Bei Emails, die in lokale Ordner des Accounts zugestellt werden, merkt das Handy, wenn die Email über den Desktop-Client auf gelesen gesetzt wird.

@andreaslang Zu deinen Fragen aus dem anderen Thread

Tritt das bei allen Geräten auf (iOS und Android)? Gibt es eine Push-Benachrichtigung, wenn eine neue E-Mail in diesen öffentlichen Ordner zugestellt wird, oder muss der Benutzer erst den Ordner auf dem mobilen Gerät öffnen, damit die neuen E-Mails angezeigt werden?

Ich habe leider nur (verschiedene) Samsung Handys zum Testen, da tritt das Problem bei allen Geräten auf. Ich habe "push" aktiviert und der öffentliche Ordner ist im Samsung Email Client als zu "synchronisierender Ordner" ausgewählt. Neue Emails werden via "push" sofort übermittelt und entsprechend signalisiert.

Auf einigen Geräten/Clients muss man die zu synchronisierenden Ordner auswählen. Vielleicht ist das hier der Fall?

Ja, das habe ich für den betreffenden Ordner aber explizit gemacht (s. o.)

5 days later

Hallo @weini ,

ich habe dieses Verhalten nicht reproduzieren können. Sowohl auf den iOS als auch auf den Android-Geräten wird eine E-Mail in einem Public Folder als gelesen markiert, sobald man sie in grommunio-web oder Outlook als gelesen markiert.

Ist es derselbe Benutzer, der die E-Mails auf einem Desktop-Client als gelesen markiert, und auf dem mobilen Gerät konfiguriert ist?

    Hallo @weini ,

    ich habe es nun auch mit einem Samsung-Gerät testen können, und die E-Mails in einem Public Folder werden als gelesen markiert, sobald man sie in grommunio-web oder Outlook als gelesen markiert.

    Wenn das Gerät einen Ordner per "push" synchronisiert, dann gibt es eine serverseitige Benachrichtigung. Dazu muss man in /etc/grommunio-sync/grommunio-sync.conf.php die folgende Änderung machen: define('LOGLEVEL', LOGLEVEL_INFO); mit define('LOGLEVEL', LOGLEVEL_WBXML); ersetzen (um die Zeile 71).

    Wenn man nun eine E-Mail im Public Folder als gelesen markiert, sollte man Ähnliches in /var/log/grommunio-sync/grommunio-sync.log sehen:

    19/06/2023 10:22:27 [12407] [DEBUG] [user@domain.tld] ASDevice->GetFolderIdForBackendId(): found backendid in contentdata but with different folder type. Lookup 'U' - synchronized id 'S12345'
    19/06/2023 10:22:27 [12407] [DEBUG] [user@domain.tld] DeviceManager->GetBackendIdForFolderId(): folderid S12345 => 01000000fb0af67d919249886aa738ce000000050001
    19/06/2023 10:22:27 [12407] [DEBUG] [user@domain.tld] ASDevice->GetFolderIdForBackendId(): found backendid in contentdata but with different folder type. Lookup 'U' - synchronized id 'S12345'
    19/06/2023 10:22:27 [12407] [DEBUG] [user@domain.tld] ExportChangesICS->InitializeExporter() successfully. 1 changes ready to sync for '01000000fb0af67d919249886aa738ce000000050001'.
    19/06/2023 10:22:27 [12407] [DEBUG] [user@domain.tld] SyncCollections->CheckForChanges(): Notification received on folder 'S12345'
    19/06/2023 10:22:27 [12407] [DEBUG] [user@domain.tld] WBXMLEncoder->startWBXML() type: vnd.ms-sync.wbxml
    19/06/2023 10:22:27 [12407] [WBXML] [user@domain.tld] O  <Ping:Ping>
    19/06/2023 10:22:27 [12407] [WBXML] [user@domain.tld] O   <Ping:Status>
    19/06/2023 10:22:27 [12407] [WBXML] [user@domain.tld] O   2
    19/06/2023 10:22:27 [12407] [WBXML] [user@domain.tld] O   </Ping:Status>
    19/06/2023 10:22:27 [12407] [WBXML] [user@domain.tld] O   <Ping:Folders>
    19/06/2023 10:22:27 [12407] [WBXML] [user@domain.tld] O    <Ping:Folder>
    19/06/2023 10:22:27 [12407] [WBXML] [user@domain.tld] O    S12345
    19/06/2023 10:22:27 [12407] [WBXML] [user@domain.tld] O    </Ping:Folder>
    19/06/2023 10:22:27 [12407] [DEBUG] [user@domain.tld] LoopDetection->ProcessLoopDetectionAddStatus: 'S12345' with status 2
    19/06/2023 10:22:27 [12407] [WBXML] [user@domain.tld] O   </Ping:Folders>
    19/06/2023 10:22:27 [12407] [WBXML] [user@domain.tld] O  </Ping:Ping>

    Wenn kein solche Ausgabe kommt, dann ist entweder der Ordner nicht richtig im Ping oder zcore kann aus irgendeinem Grund keine Notification erstellen oder irgendwas ist mit dem Benutzer falsch. Wenn eine solche Ausgabe kommt, und das Gerät dann keinen Sync-Request für diesen Ordner schickt, dann stimmt irgendwas mit dem Gerät oder mit der Kontokonfiguration auf dem Gerät nicht.

    Hallo @andreaslang
    Danke für die Analyse. Ich habe bei mir das Log mitgeschnitten, wenn ich eine Email im Status "unread" in einem Public Folder via Desktop Outlook auf "read" setze.
    Das ist bei mir etwas umfangreicher, aber die Elemente aus deinem Log finde ich wieder. Im Ergebnis bleibt die Email auf meinem Samsung Device aber im Status "unread".

    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] -------- Start
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] cmd='Sync' devType='SamsungDevice' devId='sec171d33ea7f946' getUser='user@domain.tld' from='192.168.2.3' version='2.0.19.3254e30-0' method='POST'
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Used timezone 'Europe/Vienna'
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Grommunio using PHP-MAPI version: 2.10 - PHP version: 7.4.33
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Request::ProcessHeaders() ASVersion: 16.0
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] GSync::CommandNeedsProvisioning(0): true
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] ProvisioningManager->ProvisioningRequired('715180632') saved device key '715180632': false
    20/06/2023 06:53:51 [1962208] [ INFO] [user@domain.tld] Policy 'devencenabled' not supported by the device, ignoring
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] ProvisioningManager->ProvisioningRequired() saved policy hash '431014e4a761ea216e9a35f20aaec61c' matches
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] GSync::CommandNeedsAuthentication(0): true
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Grommunio->Logon(): Trying to authenticate user 'user@domain.tld'..
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Grommunio->openMessageStore('user@domain.tld'): Found 'DEFAULT' store: 'Resource id #52'
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Grommunio->Logon(): User 'user@domain.tld' is authenticated
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Store supports properties containing Unicode characters.
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] GSync::HierarchyCommand(0): false
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] GSync::CommandNeedsPlainInput(0): false
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I  <Synchronize>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I   <Folders>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I    <Folder>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I     <SyncKey>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I      {62e56297-32c9-41d8-bdad-b16fdaee936b}99
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I     </SyncKey>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I     <FolderId>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I      S4021a
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I     </FolderId>
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] DeviceManager->GetBackendIdForFolderId(): folderid S4021a => 01000000fb0af67d919249886aa738ce0000000c68a1
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] SyncCollections->AddCollection(): Folder id 'S4021a' : ref. Lifetime '880', last sync at ''
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I     <DeletesAsMoves>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I      1
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I     </DeletesAsMoves>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I     <GetChanges/>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I     <WindowSize>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I      50
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I     </WindowSize>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I     <Options>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I      <FilterType>
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] SyncParameters->UseCPO('DEFAULT')
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I       5
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I      </FilterType>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I      <RightsManagement:RightsManagementSupport>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I       1
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I      </RightsManagement:RightsManagementSupport>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I      <AirSyncBase:BodyPreference>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I       <AirSyncBase:Type>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I        2
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I       </AirSyncBase:Type>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I      </AirSyncBase:BodyPreference>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I     </Options>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I    </Folder>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I   </Folders>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] I  </Synchronize>
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] HandleSync(): Start Output
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] GSync::GetAdditionalSyncFolderStore('01000000fb0af67d919249886aa738ce0000000c68a1'): 'SYSTEM'
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Grommunio->openMessageStore('SYSTEM'): Found 'PUBLIC' store: 'Resource id #125'
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Grommunio->GetFolderStat() fetched status information of 28 folders for store 'SYSTEM'
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] SyncParameters->IsExporterRunRequired(): true - current: 1687236830/15454/0/-1 - saved: 1687236533/15454/1/-1 - expiring: 2023-07-21 02:58:18
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Sync->loadStates(): loading states for folder 'S4021a'
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Grommunio->CleanStates(): Found 1 states to clean (62e56297-32c9-41d8-bdad-b16fdaee936b) 99
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] GSync::GetAdditionalSyncFolderStore('01000000fb0af67d919249886aa738ce0000000c68a1'): 'SYSTEM'
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] GSync::GetAdditionalSyncFolderStore('01000000fb0af67d919249886aa738ce0000000c68a1'): 'SYSTEM'
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] ExportChangesICS->Config() initialized with state: 0x04000201174019000100040000000c52d180d27601d252eef25052d2f4d3365000020196671000010052000000000001800000018d63000201da671000010052000000000001800000018d63000201d2671000010052000000000001800000018d6900
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] ASDevice->GetFolderIdForBackendId(): found backendid in contentdata but with different folder type. Lookup 'U' - synchronized id 'S4021a'
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] ExportChangesICS->InitializeExporter() successfully. 1 changes ready to sync for '01000000fb0af67d919249886aa738ce0000000c68a1'.
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] LoopDetection->ProcessLoopDetectionAddStatus: 'S4021a' with status 1
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] WBXMLEncoder->startWBXML() type: vnd.ms-sync.wbxml
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Folder type: Email
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O  <Synchronize>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O   <Folders>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O    <Folder>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O     <SyncKey>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O     {62e56297-32c9-41d8-bdad-b16fdaee936b}100
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O     </SyncKey>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O     <FolderId>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O     S4021a
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O     </FolderId>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O     <Status>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O     1
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O     </Status>
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] LoopDetection->Detect(): folderid:'S4021a' uuid:'62e56297-32c9-41d8-bdad-b16fdaee936b' counter:'99' max:'50' queued:'1'
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O     <Perform>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O      <Modify>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O       <ServerEntryId>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O       S4021a:01000000fb0af67d919249886aa738ce0000000cd336
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O       </ServerEntryId>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O       <Data>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O        <POOMMAIL:Read>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O        0
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O        </POOMMAIL:Read>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O       </Data>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O      </Modify>
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] PHPWrapper->ImportPerUserReadStateChange(): read for :'S4021a:01000000fb0af67d919249886aa738ce0000000cd336'
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O     </Perform>
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] GSync::GetAdditionalSyncFolderStore('01000000fb0af67d919249886aa738ce0000000c68a1'): 'SYSTEM'
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Sync()->setFolderStat() on S4021a: 1687236830/15454/0/-1 expiring 2023-07-21 01:38:45
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O    </Folder>
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Grommunio->setStateMessage(): mapi_folder_createmessage 0x00000000
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] Grommunio->setStateMessage(): creating new state message '62e56297-32c9-41d8-bdad-b16fdaee936b' (counter: 100)
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] SyncCollections->SaveCollection(): Data of folder 'S4021a' changed
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O   </Folders>
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O  </Synchronize>
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] WBXMLEncoder->endTag() WBXML output completed
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] WBXML-OUT: AwFqAEVcT0sDezYyZTU2Mjk3LTMyYzktNDFkOC1iZGFkLWIxNmZkYWVlOTM2Yn0xMDAAAVIDUzQwMjFhAAFOAzEAAVZITQNTNDAyMWE6MDEwMDAwMDBmYjBhZjY3ZDkxOTI0OTg4NmFhNzM4Y2UwMDAwMDAwY2QzMzYAAV0AAlUDMAABAQEBAQEB
    20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] WBXML-IN : AwFqAEVcT0sDezYyZTU2Mjk3LTMyYzktNDFkOC1iZGFkLWIxNmZkYWVlOTM2Yn05OQABUgNTNDAyMWEAAV4DMQABE1UDNTAAAVdYAzUAAQAYRQMxAAEAEUVGAzIAAQEBAQEB
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] LoopDetection->ProcessLoopDetectionTerminate()
    20/06/2023 06:53:51 [1962208] [ INFO] [user@domain.tld] cmd='Sync' memory='5.73 MiB/4.00 MiB' time='0.18s' devType='SamsungDevice' devId='sec171d33ea7f946' getUser='user@domain.tld' from='192.168.2.3' idle='0s' version='2.0.19.3254e30-0' method='POST' httpcode='200'
    20/06/2023 06:53:51 [1962208] [DEBUG] [user@domain.tld] -------- End

      Hallo @weini ,

      weini Danke für die Analyse. Ich habe bei mir das Log mitgeschnitten, wenn ich eine Email im Status "unread" in einem Public Folder via Desktop Outlook auf "read" setze.

      wie haben Sie das Outlook-Profil konfiguriert: Online oder cached?

      Aus Ihrem Log:

      20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O        <POOMMAIL:Read>
      20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O        0
      20/06/2023 06:53:51 [1962208] [WBXML] [user@domain.tld] O        </POOMMAIL:Read>

      0 bedeutet, dass die Nachricht als nicht gelesen markiert wird, somit zeigt das Gerät korrekterweise die E-Mail als nicht gelesen.

        Hallo andreaslang

        Für den Test habe ich eine Outlook Installation verwendet, die als online konfiguriert ist.
        Ich hatte aber auch schon vom Notebook aus getestet, wo das Outlook im cached Mode läuft. Soll ich dafür nochmal ein Log erzeugen?

          Hallo @weini ,

          Wenn Sie die E-Mail in Outlook als gelesen markieren, wird sie in anderen Clients (grommunio-web, Thunderbird, Evolution etc.) ebenfalls als gelesen markiert?

          weini Ich hatte aber auch schon vom Notebook aus getestet, wo das Outlook im cached Mode läuft. Soll ich dafür nochmal ein Log erzeugen?

          Wird im cached Mode POOMMAIL:Read ebenfalls der Wert 0 an das mobile Gerät geschickt, wenn man eine E-Mail als gelesen markiert?

          Es ist vielleicht ein Outlook-Problem, dass der gelesen/ungelesen Status nicht richtig gesetzt wird.

          Hallo @andreaslang

          Ich habe jetzt nochmal im cache Mode getestet. Dort wird aber auch POOMMAIL:Read mit 0 übergeben.
          Die Synchronisation von read/unread zwischen den Outlook Clients funktioniert, da habe ich kein Problem.

          Das Problem mit EAS gibt es tatsächlich nur beim setzen von READ. Wenn ich eine Email im Outlook auf UNREAD setze, dan kommt der Status einwandfrei im EAS Client an. Ich passe die Überschrift hier nochmal entsprechend an.

          weini changed the title to EAS Clients erhalten keine read Updates bei öffentlichen Ordnern .

          Kurzer Nachtrag:
          Es sieht doch so aus, dass der READ Status auch zwischen Outlook nicht immer sauber übertragen wird.

          Wenn ich im online Client den Status einer Email in einem Public Folder von unread auf read ändere, dann wird das nicht auf den cached Client übertragen.
          Es funktioniert aber, wenn ich den Status von read auf unread ändere. Es funktioniert auch von unread auf read in einem lokalen Ordner des Benutzers.

          Wenn ich im cached Client den Status einer Email in einem Public Folder von unread auf read ändere, dann wird das auf den cached Client übertragen. Es wird aber nicht auf EAS übertragen.
          Der umgekehrte Statusübergang von read auf unread wird wiederum auch korrekt auf EAS übertragen.

          Habe vor den letzten Tests nochmal meinen ganzen Server durchgestaretet um sicherzustellen, dass nicht irgendein Servcie noch einen Neustart braucht.

          © 2020-2024 grommunio GmbH. All rights reserved. | https://grommunio.com | Data Protection | Legal notice