diff --git a/alfa-client/apps/admin-e2e/src/support/commands.ts b/alfa-client/apps/admin-e2e/src/support/commands.ts
index 5442317e9972045e9b6be4644c4bbd5621377682..cf4b5dcf983c23a79e107c109a3fbc0f371301a7 100644
--- a/alfa-client/apps/admin-e2e/src/support/commands.ts
+++ b/alfa-client/apps/admin-e2e/src/support/commands.ts
@@ -74,11 +74,11 @@ Cypress.Commands.add('getTestElementWithOid', (oid, ...args) => {
 });
 
 Cypress.Commands.add('findTestElementWithClass', { prevSubject: true }, (subject: any, selector) => {
-  return subject.find(`[${DATA_TEST_CLASS}="${selector}"]`);
+  return cy.wrap(subject).find(`[${DATA_TEST_CLASS}="${selector}"]`);
 });
 
 Cypress.Commands.add('findElement', { prevSubject: true }, (subject: any, selector: string) => {
-  return subject.find(selector);
+  return cy.wrap(subject).find(selector);
 });
 
 Cypress.Commands.add('getUserInfo', () => {
diff --git a/alfa-client/apps/admin/src/app/app.component.spec.ts b/alfa-client/apps/admin/src/app/app.component.spec.ts
index 6be45ca955e87085d3bb19645d00e8a6a9719932..ef7bf3c2d2af16a8b780611d78ed73734caf580a 100644
--- a/alfa-client/apps/admin/src/app/app.component.spec.ts
+++ b/alfa-client/apps/admin/src/app/app.component.spec.ts
@@ -300,7 +300,7 @@ describe('AppComponent', () => {
       it('should navigate to statistik if aggregation mapping link exists', () => {
         component._navigateByConfiguration(createConfigurationResource([ConfigurationLinkRel.AGGREGATION_MAPPINGS]));
 
-        expect(router.navigate).toHaveBeenCalledWith(['/auswertungen']);
+        expect(router.navigate).toHaveBeenCalledWith(['/statistik/auswertungen']);
       });
 
       it('should navigate to unavailable page if no link exists', () => {
diff --git a/alfa-client/apps/alfa-e2e/src/components/postfach/postfach-mail-subnavigation.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/postfach/postfach-mail-subnavigation.e2e.component.ts
index 0e8330dbf59a3eeed60a376d24775e9266711330..45b403cfed6d693dee2c30decd7618c4124aa2de 100644
--- a/alfa-client/apps/alfa-e2e/src/components/postfach/postfach-mail-subnavigation.e2e.component.ts
+++ b/alfa-client/apps/alfa-e2e/src/components/postfach/postfach-mail-subnavigation.e2e.component.ts
@@ -22,9 +22,14 @@
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
 export class PostfachMailSubnavigation {
-  private readonly locatorBackButton: string = 'back-button';
+  private readonly backButton: string = 'back-button';
+  private readonly mailUnreadButton: string = 'mail-unread-icon-button-link';
 
   public getBackButton() {
-    return cy.getTestElement(this.locatorBackButton);
+    return cy.getTestElement(this.backButton);
+  }
+
+  public getMailUnreadButton() {
+    return cy.getTestElement(this.mailUnreadButton);
   }
 }
diff --git a/alfa-client/apps/alfa-e2e/src/components/postfach/postfach-mail.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/postfach/postfach-mail.e2e.component.ts
index 30a485fc0e343bb03af71ee4164242865c8dafac..0b068a295bf7ea14ce3ca8a8bc939e7dc3b48a25 100644
--- a/alfa-client/apps/alfa-e2e/src/components/postfach/postfach-mail.e2e.component.ts
+++ b/alfa-client/apps/alfa-e2e/src/components/postfach/postfach-mail.e2e.component.ts
@@ -34,6 +34,8 @@ export class PostfachMailE2EComponent {
   private readonly attachments: string = 'postfach-nachricht-attachments-container';
   private readonly downloadButtonWithIcon: string = 'postfach-pdf-export-button';
   private readonly downloadButtonWithLabel: string = 'postfach-pdf-export-label-button';
+  private readonly mailIcon: string = 'postfach-mail-list-mail-icon';
+  private readonly mailIconBadge: string = 'mail-icon-badge';
 
   private readonly locatorRoot: string = 'postfach-nachrichten-container-in-vorgang';
 
@@ -72,8 +74,15 @@ export class PostfachMailE2EComponent {
   public getDownloadButtonWithLabel(): Cypress.Chainable<JQuery<Element>> {
     return getTestElement(this.downloadButtonWithLabel);
   }
-}
 
+  public getMailIcon() {
+    return getTestElement(this.mailIcon);
+  }
+
+  public getMailIconBadge() {
+    return this.getMailIcon().findTestElementWithClass(this.mailIconBadge);
+  }
+}
 export class PostfachMailListItemE2EComponent {
   private readonly createdAt: string = 'mail-created-at';
   private readonly subject: string = 'mail-subject';
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail-error.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail-error.cy.ts
index 38cdc69f040a56f482d2f617b18d334b9b28c2f4..7757287c507e52f65933d6510694736938b5070b 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail-error.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail-error.cy.ts
@@ -43,7 +43,7 @@ import {
   VorgangAttachedItemE2E,
 } from '../../../model/vorgang-attached-item';
 import { containsSpinner, MainPage, notContainsSpinner, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
-import { PostfachMailPage } from '../../../page-objects/postfach-mail.component.po';
+import { PostfachMailPage } from '../../../page-objects/postfach.po';
 import { VorgangPage } from '../../../page-objects/vorgang.po';
 import { contains, exist, notExist } from '../../../support/cypress.util';
 import { getUserSabineId } from '../../../support/user-util';
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.cy.ts
index 6a33ba89488ec5a38e389f3e483ffa59f030524d..19d6baacf9dc4e3450c067b5f636156214241943 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.cy.ts
@@ -50,7 +50,7 @@ import {
   VorgangAttachedItemE2E,
 } from '../../../model/vorgang-attached-item';
 import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
-import { PostfachMailPage } from '../../../page-objects/postfach-mail.component.po';
+import { PostfachMailPage } from '../../../page-objects/postfach.po';
 import { VorgangPage } from '../../../page-objects/vorgang.po';
 import { expectIconWithBadge, expectIconWithoutBadge } from '../../../support/angular.util';
 import { readFileFromDownloads } from '../../../support/cypress-helper';
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.filtered-by-organisationseinheit.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.filtered-by-organisationseinheit.cy.ts
index 7c15088c5af34553732905a552fde918eaaecda8..93ef336ae450af38d9f3e9a5d702786626001961 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.filtered-by-organisationseinheit.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.filtered-by-organisationseinheit.cy.ts
@@ -26,7 +26,7 @@ import { SnackBarE2EComponent } from '../../../components/ui/snackbar.e2e.compon
 import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component';
 import { EingangE2E, VorgangE2E } from '../../../model/vorgang';
 import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
-import { PostfachMailPage } from '../../../page-objects/postfach-mail.component.po';
+import { PostfachMailPage } from '../../../page-objects/postfach.po';
 import { visitUrl } from '../../../support/cypress-helper';
 import { contains, exist, notExist } from '../../../support/cypress.util';
 import { ORGANISATIONSEINHEITEN_ID_FOR_ADELHEIT, ORGANISATIONSEINHEITEN_ID_FOR_SABINE } from '../../../support/data.util';
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-nachricht-authorize-by-role.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-nachricht-authorize-by-role.cy.ts
index 8fc722691d266e544f795e717ac1065e0082061f..d98003e63d93be5449d9ecdfdc346c17ee553846 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-nachricht-authorize-by-role.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-nachricht-authorize-by-role.cy.ts
@@ -24,7 +24,7 @@
 import { SnackBarE2EComponent } from 'apps/alfa-e2e/src/components/ui/snackbar.e2e.component';
 import { VorgangE2E, VorgangStatusE2E } from 'apps/alfa-e2e/src/model/vorgang';
 import { MainPage, waitForSpinnerToDisappear } from 'apps/alfa-e2e/src/page-objects/main.po';
-import { PostfachMailPage } from 'apps/alfa-e2e/src/page-objects/postfach-mail.component.po';
+import { PostfachMailPage } from 'apps/alfa-e2e/src/page-objects/postfach.po';
 import { visitUrl } from 'apps/alfa-e2e/src/support/cypress-helper';
 import { contains, exist, notExist } from 'apps/alfa-e2e/src/support/cypress.util';
 import { MessagesE2E } from 'apps/alfa-e2e/src/support/messages';
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-nachricht-mark-unread.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-nachricht-mark-unread.cy.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5fa3d4ebee019dc3d03dc127285e965b17ec1b99
--- /dev/null
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-nachricht-mark-unread.cy.ts
@@ -0,0 +1,112 @@
+import { PostfachMailPage } from 'apps/alfa-e2e/src/page-objects/postfach.po';
+import {
+  createPostfachNachrichtAttachedItem,
+  createPostfachNachrichtReplyItem,
+} from 'apps/alfa-e2e/src/support/postfach-nachricht.util';
+import { initVorgangAttachedItem } from 'apps/alfa-e2e/src/support/vorgang-attached-item-util';
+import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component';
+import { E2EPostfachHelper } from '../../../helper/postfach/postfach.helper';
+import { E2EPostfachVerifier } from '../../../helper/postfach/postfach.verifier';
+import { E2EVorgangNavigator } from '../../../helper/vorgang/vorgang.navigator';
+import { ClientAttributeNameE2E, VorgangE2E } from '../../../model/vorgang';
+import { PostfachMailItemE2E, VorgangAttachedItemClientE2E, VorgangAttachedItemE2E } from '../../../model/vorgang-attached-item';
+import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
+import { dropCollections } from '../../../support/cypress-helper';
+import { exist } from '../../../support/cypress.util';
+import { initUsermanagerUsers, loginAsSabine } from '../../../support/user-util';
+import {
+  buildVorgang,
+  createHasNewPostfachNachrichtClientAttribute,
+  createHasPostfachNachrichtClientAttribute,
+  createVorgang,
+  initVorgaenge,
+  objectIds,
+} from '../../../support/vorgang-util';
+
+describe('Postfach Nachrichten mark unread', () => {
+  const vorgangList: VorgangListE2EComponent = new MainPage().getVorgangList();
+  const vorgangNavigator: E2EVorgangNavigator = new E2EVorgangNavigator();
+
+  const postfachMailPage: PostfachMailPage = new PostfachMailPage();
+  const postfachVerifier: E2EPostfachVerifier = new E2EPostfachVerifier();
+  const postfachHelper: E2EPostfachHelper = new E2EPostfachHelper();
+
+  const vorgang: VorgangE2E = createVorgang();
+  const vorgangWithReply: VorgangE2E = {
+    ...buildVorgang(objectIds[0], 'VorgangWithReply'),
+    clientAttributes: {
+      [VorgangAttachedItemClientE2E.OZGCLOUD_NACHRICHTEN_MANAGER]: {
+        [ClientAttributeNameE2E.HAS_NEW_POSTFACH_NACHRICHT]: createHasNewPostfachNachrichtClientAttribute(true),
+        [ClientAttributeNameE2E.HAS_POSTFACH_NACHRICHT]: createHasPostfachNachrichtClientAttribute(true),
+      },
+    },
+  };
+
+  const postfachMailReply: PostfachMailItemE2E = createPostfachNachrichtReplyItem();
+  const postfachNachrichtAttachedItem: VorgangAttachedItemE2E = {
+    ...createPostfachNachrichtAttachedItem(objectIds[1], objectIds[0]),
+    item: postfachMailReply,
+  };
+
+  before(() => {
+    initVorgaenge([vorgang, vorgangWithReply]);
+    initVorgangAttachedItem([postfachNachrichtAttachedItem]);
+    initUsermanagerUsers();
+
+    loginAsSabine();
+
+    waitForSpinnerToDisappear();
+    exist(vorgangList.getRoot());
+  });
+
+  after(() => {
+    dropCollections();
+  });
+
+  describe('mail icon', () => {
+    it('should not have unread badge', () => {
+      vorgangNavigator.openVorgang(vorgang.name);
+
+      postfachVerifier.verifyMailIconWithoutBadgeExists();
+    });
+
+    it('should have unread badge', () => {
+      vorgangNavigator.openVorgang(vorgangWithReply.name);
+
+      postfachVerifier.verifyMailIconWithBadgeExists();
+    });
+
+    it('should not have unread badge after messages were read', () => {
+      postfachHelper.navigateToPostfach();
+      postfachMailPage.getSubnavigation().getBackButton().click();
+
+      postfachVerifier.verifyMailIconWithoutBadgeExists();
+    });
+  });
+
+  describe('mark as unread button', () => {
+    it('should be displayed as action button', () => {
+      postfachHelper.navigateToPostfach();
+
+      exist(postfachMailPage.getSubnavigation().getMailUnreadButton());
+    });
+
+    it('should navigate back and mark messages as unread', () => {
+      postfachMailPage.getSubnavigation().getMailUnreadButton().click();
+
+      postfachVerifier.verifyMailIconWithBadgeExists();
+    });
+
+    it('should be displayed as button', () => {
+      postfachHelper.navigateToPostfach();
+
+      exist(postfachMailPage.getMailUnreadButton());
+    });
+
+    it('should navigate back and mark messages as unread', () => {
+      postfachMailPage.getMailUnreadButton().click();
+
+      postfachVerifier.verifyMailIconWithBadgeExists();
+    });
+  });
+});
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-nachrichten.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-nachrichten.cy.ts
index fa8a20f7a68e1e6c147c2f3c46ad9fd66e04e041..27d04e6196a2e9172d42db0e720d9896272ba8a0 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-nachrichten.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/postfach-mail/postfach-nachrichten.cy.ts
@@ -22,7 +22,7 @@
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
 import { PostfachMailE2EComponent } from 'apps/alfa-e2e/src/components/postfach/postfach-mail.e2e.component';
-import { PostfachMailPage } from 'apps/alfa-e2e/src/page-objects/postfach-mail.component.po';
+import { PostfachMailPage } from 'apps/alfa-e2e/src/page-objects/postfach.po';
 import {
   createPostfachNachrichtAttachedItem,
   createPostfachNachrichtReplyItem,
@@ -114,7 +114,7 @@ describe('Postfach Nachrichten', () => {
 
     describe('by download button on nachrichten details page', () => {
       it('should show an overview of all nachrichten after clicking on nachricht', () => {
-        postfachMailContainer.getList().click();
+        postfachMailContainer.getListItem(postfachMailReply.subject).getRoot().click();
         waitForSpinnerToDisappear();
 
         exist(postfachMailPage.getRoot());
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-dokumente-hochladen.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-dokumente-hochladen.cy.ts
index 71531d122d7f3fdc14570feb7d498dd7f449b467..745950f0b64a4b73ea09d1df2fe11c7c46ba1a3b 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-dokumente-hochladen.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-dokumente-hochladen.cy.ts
@@ -127,6 +127,8 @@ describe('Bescheid Dokumente hochladen', () => {
       waitForSpinnerToDisappear();
 
       vorgangFormularButtons.getBescheidenButton().click();
+      waitForSpinnerToDisappear();
+      exist(bescheidWizard.getWeiterButton());
       bescheidWizard.getWeiterButton().click();
       exist(bescheidWizard.getFileBescheidValidInWizard());
       exist(bescheidWizard.getFileAnhangValidInWizard());
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-senden.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-senden.cy.ts
index 43e23febb7f15a82dd1431890c52590438388cfd..0b89bde0a5f58f854855f9ab4574cc0f29dca7d7 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-senden.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-bescheid/vorgang-bescheid-senden.cy.ts
@@ -26,12 +26,12 @@ import localeDe from '@angular/common/locales/de';
 import localeDeExtra from '@angular/common/locales/extra/de';
 import {
   PostfachMailE2EComponent,
-  PostfachMailListItem,
+  PostfachMailListItemE2EComponent,
 } from 'apps/alfa-e2e/src/components/postfach/postfach-mail.e2e.component';
 import { VorgangBescheidWizardE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-bescheid-wizard.e2e.component';
 import { VorgangFormularButtonsE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-formular-buttons.e2e.components';
 import { VorgangE2E, VorgangStatusE2E } from 'apps/alfa-e2e/src/model/vorgang';
-import { PostfachMailPage } from 'apps/alfa-e2e/src/page-objects/postfach-mail.component.po';
+import { PostfachMailPage } from 'apps/alfa-e2e/src/page-objects/postfach.po';
 import { TEST_FILE_BESCHEID_ANHANG_VALID, TEST_FILE_BESCHEID_VALID } from 'apps/alfa-e2e/src/support/data.util';
 import { uploadFile } from 'apps/alfa-e2e/src/support/file-upload';
 import { getAdjustedDateGerman } from 'apps/alfa-e2e/src/support/tech.util';
@@ -97,17 +97,17 @@ describe('Bescheid senden', () => {
         bescheidWizard.getSendButton().click();
         waitForSpinnerToDisappear();
 
-        const postfachMailItem: PostfachMailListItem = postfachMailContainer.getListItem(mailText);
+        const postfachMailItem: PostfachMailListItemE2EComponent = postfachMailContainer.getListItem(mailText);
 
         exist(postfachMailItem.getRoot());
       });
 
       it('should contain correct text and both attachments', () => {
-        const postfachMailItem: PostfachMailListItem = postfachMailContainer.getListItem(mailText);
+        const postfachMailItem: PostfachMailListItemE2EComponent = postfachMailContainer.getListItem(mailText);
         postfachMailItem.getRoot().click();
         waitForSpinnerToDisappear();
 
-        const postfachListItem: PostfachMailListItem = postfachMailPage.getListItem(mailText);
+        const postfachListItem: PostfachMailListItemE2EComponent = postfachMailPage.getListItem(mailText);
         contains(postfachMailPage.getMailText(), anredeText);
 
         exist(postfachListItem.getAttachmentContainer().getList().getItem(TEST_FILE_BESCHEID_VALID).getRoot());
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-ungelesen.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-ungelesen.cy.ts
index 55378be9b89267e067ca4a9a8269c21e9fbb5fc6..f6a46976701b8800ccfcb7b2cf9629ab37ff63cb 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-ungelesen.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-ungelesen.cy.ts
@@ -23,7 +23,7 @@
  */
 import {
   PostfachMailE2EComponent,
-  PostfachMailListItem,
+  PostfachMailListItemE2EComponent,
 } from 'apps/alfa-e2e/src/components/postfach/postfach-mail.e2e.component';
 import { VorgangSubnavigationE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-subnavigation';
 import {
@@ -121,7 +121,7 @@ describe('VorgangList Ungelesene Nachrichten', () => {
       vorgangList.getListItem(vorgangWithReply1.name).getRoot().click();
       waitForSpinnerToDisappear();
 
-      const postfachMailItem: PostfachMailListItem = postfachMailContainer.getListItem('Subject');
+      const postfachMailItem: PostfachMailListItemE2EComponent = postfachMailContainer.getListItem('Subject');
       postfachMailItem.getRoot().click();
       waitForSpinnerToDisappear();
 
@@ -135,7 +135,7 @@ describe('VorgangList Ungelesene Nachrichten', () => {
       vorgangList.getListItem(vorgangWithReply2.name).getRoot().click();
       waitForSpinnerToDisappear();
 
-      const postfachMailItem: PostfachMailListItem = postfachMailContainer.getListItem('Subject');
+      const postfachMailItem: PostfachMailListItemE2EComponent = postfachMailContainer.getListItem('Subject');
       postfachMailItem.getRoot().click();
       waitForSpinnerToDisappear();
 
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list.search.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list.search.cy.ts
index 62f8b2d334931f7c3886c41d3aa9afedf310b0bc..434809c2d84768844c80712abd817c247f33bb8c 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list.search.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-list/vorgang-list.search.cy.ts
@@ -23,7 +23,7 @@
  */
 import { faker } from '@faker-js/faker';
 import { KommentarInVorgangE2EComponent } from 'apps/alfa-e2e/src/components/kommentar/kommentar-list.e2e.component';
-import { PostfachMailListItem } from 'apps/alfa-e2e/src/components/postfach/postfach-mail.e2e.component';
+import { PostfachMailListItemE2EComponent } from 'apps/alfa-e2e/src/components/postfach/postfach-mail.e2e.component';
 import { VorgangDetailHeaderE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-detail-header.e2e.component';
 import { VorgangListItemE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-item.e2e.component';
 import { VorgangListE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-list.e2e.component';
@@ -437,7 +437,7 @@ describe('VorgangList Suche', () => {
       });
 
       it('should have postfachNachricht', () => {
-        const postfachNachricht: PostfachMailListItem = vorgangPage
+        const postfachNachricht: PostfachMailListItemE2EComponent = vorgangPage
           .getPostfachMailcontainer()
           .getListItem('PostfachNachrichtOther');
 
diff --git a/alfa-client/apps/alfa-e2e/src/helper/app.helper.ts b/alfa-client/apps/alfa-e2e/src/helper/app.helper.ts
index a517ed1e108ee3e5da3de0897b6efea428cce45f..ba5c324caeefddbf48a3efb7fb3cd5d6b7bbaaf2 100644
--- a/alfa-client/apps/alfa-e2e/src/helper/app.helper.ts
+++ b/alfa-client/apps/alfa-e2e/src/helper/app.helper.ts
@@ -28,6 +28,10 @@ export class E2EAppHelper {
     this.mainPage.getHeader().getLogo().click();
   }
 
+  public navigateRelative(url: string): void {
+    cy.location('pathname').then((currentPath: string) => cy.visit(`${currentPath}/${url}`));
+  }
+
   public saveAndCloseSnackbar(message: string): void {
     this.verifier.verifySnackbar(message);
     this.closeSnackbar();
diff --git a/alfa-client/apps/alfa-e2e/src/helper/postfach-nachricht/postfach-nachricht.verifier.ts b/alfa-client/apps/alfa-e2e/src/helper/postfach-nachricht/postfach-nachricht.verifier.ts
index d6f9c0cebf1d90fa9c434c594c83bf8fa2ce3c00..05254f563d2e2b8ba6c15cd271105ea293a83937 100644
--- a/alfa-client/apps/alfa-e2e/src/helper/postfach-nachricht/postfach-nachricht.verifier.ts
+++ b/alfa-client/apps/alfa-e2e/src/helper/postfach-nachricht/postfach-nachricht.verifier.ts
@@ -1,6 +1,6 @@
 import { PostfachMailListItemE2EComponent } from '../../components/postfach/postfach-mail.e2e.component';
 import { PostfachNachrichtMessageCodeMessagesE2E } from '../../model/vorgang-attached-item';
-import { PostfachMailPage } from '../../page-objects/postfach-mail.component.po';
+import { PostfachMailPage } from '../../page-objects/postfach.po';
 import { contains, exist } from '../../support/cypress.util';
 
 export class E2EPostfachNachrichtVerifier {
diff --git a/alfa-client/apps/alfa-e2e/src/helper/postfach/postfach.helper.ts b/alfa-client/apps/alfa-e2e/src/helper/postfach/postfach.helper.ts
new file mode 100644
index 0000000000000000000000000000000000000000..29040f66391ad02a33ca4158196d1b7bcd906f2f
--- /dev/null
+++ b/alfa-client/apps/alfa-e2e/src/helper/postfach/postfach.helper.ts
@@ -0,0 +1,15 @@
+import { waitForSpinnerToDisappear } from '../../page-objects/main.po';
+import { PostfachMailPage } from '../../page-objects/postfach.po';
+import { exist } from '../../support/cypress.util';
+import { E2EAppHelper } from '../app.helper';
+
+export class E2EPostfachHelper {
+  private readonly appHelper: E2EAppHelper = new E2EAppHelper();
+  private readonly postfachMailPage: PostfachMailPage = new PostfachMailPage();
+
+  public navigateToPostfach(): void {
+    this.appHelper.navigateRelative('postfach');
+    waitForSpinnerToDisappear();
+    exist(this.postfachMailPage.getRoot());
+  }
+}
diff --git a/alfa-client/apps/alfa-e2e/src/helper/postfach/postfach.verifier.ts b/alfa-client/apps/alfa-e2e/src/helper/postfach/postfach.verifier.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d20b3070f6f015fb328b8144739a146f21edb0b8
--- /dev/null
+++ b/alfa-client/apps/alfa-e2e/src/helper/postfach/postfach.verifier.ts
@@ -0,0 +1,16 @@
+import { VorgangPage } from '../../page-objects/vorgang.po';
+import { exist, notExist } from '../../support/cypress.util';
+
+export class E2EPostfachVerifier {
+  private readonly vorgangPage: VorgangPage = new VorgangPage();
+
+  verifyMailIconWithoutBadgeExists(): void {
+    exist(this.vorgangPage.getPostfachMailcontainer().getMailIcon());
+    notExist(this.vorgangPage.getPostfachMailcontainer().getMailIconBadge());
+  }
+
+  verifyMailIconWithBadgeExists(): void {
+    exist(this.vorgangPage.getPostfachMailcontainer().getMailIcon());
+    exist(this.vorgangPage.getPostfachMailcontainer().getMailIconBadge());
+  }
+}
diff --git a/alfa-client/apps/alfa-e2e/src/page-objects/postfach-mail.component.po.ts b/alfa-client/apps/alfa-e2e/src/page-objects/postfach.po.ts
similarity index 90%
rename from alfa-client/apps/alfa-e2e/src/page-objects/postfach-mail.component.po.ts
rename to alfa-client/apps/alfa-e2e/src/page-objects/postfach.po.ts
index 50d8ffd1fbcfcbcfa098a986b7c7ece618087205..e594682abe4a8f259f11f1cb395b982f40754137 100644
--- a/alfa-client/apps/alfa-e2e/src/page-objects/postfach-mail.component.po.ts
+++ b/alfa-client/apps/alfa-e2e/src/page-objects/postfach.po.ts
@@ -21,13 +21,13 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-//TODO Datei umbenennen in postfach.po.ts
 import { PostfachMailSubnavigation } from '../components/postfach/postfach-mail-subnavigation.e2e.component';
 import { PostfachMailListItemE2EComponent } from '../components/postfach/postfach-mail.e2e.component';
 
 export class PostfachMailPage {
-  private readonly root: string = 'postfach-mail-list';
+  private readonly root: string = 'postfach-page-mail-list';
   private readonly downloadButton: string = 'postfach-pdf-export-button';
+  private readonly mailUnreadButton: string = 'mail-unread-button-link';
   private readonly mailText: string = 'postfach-outgoing-nachricht';
   private readonly heading: string = 'postfach-mail-heading';
   private readonly headingText: string = 'Nachrichten zum Vorgang';
@@ -58,6 +58,10 @@ export class PostfachMailPage {
     return cy.getTestElement(this.downloadButton);
   }
 
+  getMailUnreadButton() {
+    return cy.getTestElement(this.mailUnreadButton);
+  }
+
   getMailText() {
     return cy.getTestElement(this.mailText);
   }
diff --git a/alfa-client/apps/alfa-e2e/src/support/commands.ts b/alfa-client/apps/alfa-e2e/src/support/commands.ts
index 30e88fd0f58f79fb5d3db717bb46a835fc2b5b54..79b18c3d143739d601e0a3aaa4b67f8c416fffa2 100644
--- a/alfa-client/apps/alfa-e2e/src/support/commands.ts
+++ b/alfa-client/apps/alfa-e2e/src/support/commands.ts
@@ -107,11 +107,11 @@ Cypress.Commands.add('getTestElementWithOid', (oid, ...args) => {
 });
 
 Cypress.Commands.add('findTestElementWithClass', { prevSubject: true }, (subject: any, selector) => {
-  return subject.find(`[${DATA_TEST_CLASS}="${selector}"]`);
+  return cy.wrap(subject).find(`[${DATA_TEST_CLASS}="${selector}"]`);
 });
 
 Cypress.Commands.add('findElement', { prevSubject: true }, (subject: any, selector: string) => {
-  return subject.find(selector);
+  return cy.wrap(subject).find(selector);
 });
 
 Cypress.Commands.add('login', (user: string, password: string) => {
diff --git a/alfa-client/libs/admin/configuration-shared/src/lib/configuration.linkrel.ts b/alfa-client/libs/admin/configuration-shared/src/lib/configuration.linkrel.ts
index f38803351591db0d6ac7fb13c7bef7c0a9ce7a34..e9346ae8ace0795d7964138d32a3a35c0e9beb2d 100644
--- a/alfa-client/libs/admin/configuration-shared/src/lib/configuration.linkrel.ts
+++ b/alfa-client/libs/admin/configuration-shared/src/lib/configuration.linkrel.ts
@@ -23,5 +23,7 @@
  */
 export enum ConfigurationLinkRel {
   SETTING = 'settings',
-  AGGREGATION_MAPPINGS = 'aggregationMappings',
+  AGGREGATION_MAPPINGS = 'auswertungs',
+  DATENFREIGABE = 'datenfreigabes',
+  DATENANFRAGE = 'datenanfrages',
 }
diff --git a/alfa-client/libs/admin/configuration/src/lib/menu-container/menu-container.component.html b/alfa-client/libs/admin/configuration/src/lib/menu-container/menu-container.component.html
index fd97589d60cd2ca0c583ca7ae1a143f7bba98121..88920c510ee3af9d88073ba632865bfefa8a5055 100644
--- a/alfa-client/libs/admin/configuration/src/lib/menu-container/menu-container.component.html
+++ b/alfa-client/libs/admin/configuration/src/lib/menu-container/menu-container.component.html
@@ -1 +1 @@
-<admin-menu [configurationStateResource]="configurationStateResource$ | async"></admin-menu>
\ No newline at end of file
+<admin-menu [configurationStateResource]="configurationStateResource$ | async" />
diff --git a/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/menu.component.html b/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/menu.component.html
index 672cb8f71c1d5426b777273eb7d3f2d12239b6b4..7f9e639960ff8987f4d5d7cf780910f34c1c6f4e 100644
--- a/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/menu.component.html
+++ b/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/menu.component.html
@@ -1,10 +1,6 @@
 @if (configurationStateResource.resource | hasLink: configurationLinkRel.SETTING) {
   <ods-nav-item data-test-id="postfach-navigation" caption="Postfach" path="/postfach">
-    <ods-icon icon name="mailbox" fill="text" />
-  </ods-nav-item>
-}
-@if (configurationStateResource.resource | hasLink: configurationLinkRel.AGGREGATION_MAPPINGS) {
-  <ods-nav-item data-test-id="statistik-navigation" caption="Statistik" [path]="'/' + ROUTES.AGGREGATION_MAPPING">
-    <ods-icon icon name="statistic" fill="text" />
+    <ods-icon icon name="mail" fill="text" />
   </ods-nav-item>
 }
+<admin-statistik-menu [configurationStateResource]="configurationStateResource" />
diff --git a/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/menu.component.spec.ts b/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/menu.component.spec.ts
index bc802c253dfb33ee7ae2b9dff73dca63c84cfce8..731b103bffc54ab15461d59449641a1b2371f804 100644
--- a/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/menu.component.spec.ts
+++ b/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/menu.component.spec.ts
@@ -1,12 +1,13 @@
 import { ConfigurationLinkRel } from '@admin-client/configuration-shared';
 import { createEmptyStateResource, createStateResource, HasLinkPipe } from '@alfa-client/tech-shared';
-import { existsAsHtmlElement, notExistsAsHtmlElement } from '@alfa-client/test-utils';
+import { existsAsHtmlElement, getMockComponent, notExistsAsHtmlElement } from '@alfa-client/test-utils';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { IconComponent, NavItemComponent } from '@ods/system';
 import { createConfigurationResource } from 'libs/admin/configuration-shared/test/configuration';
 import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
 import { MockComponent } from 'ng-mocks';
 import { MenuComponent } from './menu.component';
+import { StatistikMenuComponent } from './statistik-menu/statistik-menu.component';
 
 describe('MenuComponent', () => {
   let component: MenuComponent;
@@ -17,8 +18,7 @@ describe('MenuComponent', () => {
 
   beforeEach(async () => {
     await TestBed.configureTestingModule({
-      imports: [MenuComponent, HasLinkPipe],
-      declarations: [MockComponent(NavItemComponent), MockComponent(IconComponent)],
+      imports: [MenuComponent, HasLinkPipe, MockComponent(NavItemComponent), MockComponent(IconComponent)],
     }).compileComponents();
 
     fixture = TestBed.createComponent(MenuComponent);
@@ -49,23 +49,11 @@ describe('MenuComponent', () => {
     });
   });
 
-  describe('statistic navigation', () => {
-    it('should show if settings link is present', () => {
-      component.configurationStateResource = createStateResource(
-        createConfigurationResource([ConfigurationLinkRel.AGGREGATION_MAPPINGS]),
-      );
-
-      fixture.detectChanges();
-
-      existsAsHtmlElement(fixture, statistikNavigationSelector);
-    });
-
-    it('should hide if settings link is missing', () => {
-      component.configurationStateResource = createStateResource(createConfigurationResource());
-
-      fixture.detectChanges();
+  describe('statistik menu', () => {
+    it('should call with configurationStateResource', () => {
+      const statisticMenu: StatistikMenuComponent = getMockComponent(fixture, StatistikMenuComponent);
 
-      notExistsAsHtmlElement(fixture, statistikNavigationSelector);
+      expect(statisticMenu.configurationStateResource).toBe(component.configurationStateResource);
     });
   });
 });
diff --git a/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/menu.component.ts b/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/menu.component.ts
index ad10332330c6af03140a8e15f63c4682504d211a..79b5da74eeaebd0a66f3ad81bbbce795e6a49871 100644
--- a/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/menu.component.ts
+++ b/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/menu.component.ts
@@ -4,11 +4,12 @@ import { HasLinkPipe, StateResource } from '@alfa-client/tech-shared';
 import { CommonModule } from '@angular/common';
 import { Component, Input } from '@angular/core';
 import { IconComponent, NavItemComponent } from '@ods/system';
+import { StatistikMenuComponent } from './statistik-menu/statistik-menu.component';
 
 @Component({
   selector: 'admin-menu',
   standalone: true,
-  imports: [CommonModule, NavItemComponent, IconComponent, HasLinkPipe],
+  imports: [CommonModule, NavItemComponent, IconComponent, HasLinkPipe, StatistikMenuComponent],
   templateUrl: './menu.component.html',
 })
 export class MenuComponent {
diff --git a/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/statistik-menu/statistik-menu.component.html b/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/statistik-menu/statistik-menu.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..2fb7553377a341679374591780e2984aa43916bd
--- /dev/null
+++ b/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/statistik-menu/statistik-menu.component.html
@@ -0,0 +1,26 @@
+@if (
+  configurationStateResource.resource
+    | hasAnyLink
+      : configurationLinkRel.AGGREGATION_MAPPINGS
+      : configurationLinkRel.DATENFREIGABE
+      : configurationLinkRel.DATENANFRAGE
+) {
+  <ods-nav-headline label="Statistik" />
+  <div class="flex flex-col gap-2">
+    @if (configurationStateResource.resource | hasLink: configurationLinkRel.AGGREGATION_MAPPINGS) {
+      <ods-nav-item data-test-id="auswertung-navigation" caption="Auswertungen" [path]="'/' + ROUTES.AGGREGATION_MAPPING">
+        <ods-icon icon name="statistic" fill="text" />
+      </ods-nav-item>
+    }
+    @if (configurationStateResource.resource | hasLink: configurationLinkRel.DATENFREIGABE) {
+      <ods-nav-item data-test-id="datenfreigaben-navigation" caption="Datenfreigaben" [path]="'/' + ROUTES.DATENFREIGABEN">
+        <ods-icon icon name="bar-chart-arrow" fill="text" />
+      </ods-nav-item>
+    }
+    @if (configurationStateResource.resource | hasLink: configurationLinkRel.DATENANFRAGE) {
+      <ods-nav-item data-test-id="datenanfragen-navigation" caption="Datenanfragen" [path]="'/' + ROUTES.DATENANFRAGEN">
+        <ods-icon icon name="bubble-question-mark" fill="text" />
+      </ods-nav-item>
+    }
+  </div>
+}
diff --git a/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/statistik-menu/statistik-menu.component.spec.ts b/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/statistik-menu/statistik-menu.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..24008266f38eb1fd33d4bbee06260342f6a87f14
--- /dev/null
+++ b/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/statistik-menu/statistik-menu.component.spec.ts
@@ -0,0 +1,95 @@
+import { ConfigurationLinkRel } from '@admin-client/configuration-shared';
+import { createEmptyStateResource, createStateResource, HasLinkPipe } from '@alfa-client/tech-shared';
+import { existsAsHtmlElement, notExistsAsHtmlElement } from '@alfa-client/test-utils';
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { IconComponent, NavItemComponent } from '@ods/system';
+import { createConfigurationResource } from 'libs/admin/configuration-shared/test/configuration';
+import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
+import { MockComponent } from 'ng-mocks';
+import { StatistikMenuComponent } from './statistik-menu.component';
+
+describe('StatistikMenuComponent', () => {
+  let component: StatistikMenuComponent;
+  let fixture: ComponentFixture<StatistikMenuComponent>;
+
+  const auswertungNavigationSelector: string = getDataTestIdOf('auswertung-navigation');
+  const datenfreigabenNavigationSelector: string = getDataTestIdOf('datenfreigaben-navigation');
+  const datenanfragenNavigationSelector: string = getDataTestIdOf('datenanfragen-navigation');
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [StatistikMenuComponent, HasLinkPipe, MockComponent(NavItemComponent), MockComponent(IconComponent)],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(StatistikMenuComponent);
+    component = fixture.componentInstance;
+    component.configurationStateResource = createEmptyStateResource();
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+
+  describe('statistic navigation', () => {
+    describe('auswertung', () => {
+      it('should show if agregation mapping link is present', () => {
+        component.configurationStateResource = createStateResource(
+          createConfigurationResource([ConfigurationLinkRel.AGGREGATION_MAPPINGS]),
+        );
+
+        fixture.detectChanges();
+
+        existsAsHtmlElement(fixture, auswertungNavigationSelector);
+      });
+
+      it('should hide if agregation mapping link is missing', () => {
+        component.configurationStateResource = createStateResource(createConfigurationResource());
+
+        fixture.detectChanges();
+
+        notExistsAsHtmlElement(fixture, auswertungNavigationSelector);
+      });
+    });
+
+    describe('datenfreigaben', () => {
+      it('should show if datenfreigabe link is present', () => {
+        component.configurationStateResource = createStateResource(
+          createConfigurationResource([ConfigurationLinkRel.DATENFREIGABE]),
+        );
+
+        fixture.detectChanges();
+
+        existsAsHtmlElement(fixture, datenfreigabenNavigationSelector);
+      });
+
+      it('should hide if datenfreigabe link is missing', () => {
+        component.configurationStateResource = createStateResource(createConfigurationResource());
+
+        fixture.detectChanges();
+
+        notExistsAsHtmlElement(fixture, datenfreigabenNavigationSelector);
+      });
+    });
+
+    describe('datenanfragen', () => {
+      it('should show if datenanfrage link is present', () => {
+        component.configurationStateResource = createStateResource(
+          createConfigurationResource([ConfigurationLinkRel.DATENANFRAGE]),
+        );
+
+        fixture.detectChanges();
+
+        existsAsHtmlElement(fixture, datenanfragenNavigationSelector);
+      });
+
+      it('should hide if datenanfrage link is missing', () => {
+        component.configurationStateResource = createStateResource(createConfigurationResource());
+
+        fixture.detectChanges();
+
+        notExistsAsHtmlElement(fixture, datenanfragenNavigationSelector);
+      });
+    });
+  });
+});
diff --git a/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/statistik-menu/statistik-menu.component.ts b/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/statistik-menu/statistik-menu.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..40b40d14a7687b669ca99a9374c67c351d5b1cfc
--- /dev/null
+++ b/alfa-client/libs/admin/configuration/src/lib/menu-container/menu/statistik-menu/statistik-menu.component.ts
@@ -0,0 +1,19 @@
+import { ConfigurationLinkRel, ConfigurationResource } from '@admin-client/configuration-shared';
+import { ROUTES } from '@admin-client/shared';
+import { HasAnyLinkPipe, HasLinkPipe, StateResource } from '@alfa-client/tech-shared';
+import { CommonModule } from '@angular/common';
+import { Component, Input } from '@angular/core';
+import { IconComponent, NavHeadlineComponent, NavItemComponent } from '@ods/system';
+
+@Component({
+  selector: 'admin-statistik-menu',
+  standalone: true,
+  imports: [CommonModule, NavItemComponent, IconComponent, HasLinkPipe, HasAnyLinkPipe, NavHeadlineComponent],
+  templateUrl: './statistik-menu.component.html',
+})
+export class StatistikMenuComponent {
+  @Input() configurationStateResource: StateResource<ConfigurationResource>;
+
+  public readonly configurationLinkRel = ConfigurationLinkRel;
+  public readonly ROUTES = ROUTES;
+}
diff --git a/alfa-client/libs/admin/shared/src/lib/routes.ts b/alfa-client/libs/admin/shared/src/lib/routes.ts
index 9f1496843e54d2c7ff25e132f0b68b4edee6469d..4fcb7a1f5765c2664d4e17f06b55c6714818e1b7 100644
--- a/alfa-client/libs/admin/shared/src/lib/routes.ts
+++ b/alfa-client/libs/admin/shared/src/lib/routes.ts
@@ -28,7 +28,9 @@ export enum ROUTES {
   BENUTZER_ID = 'benutzer/:userid',
   ORGANISATIONSEINHEITEN = 'organisationseinheiten',
   UNAVAILABLE = 'unavailable',
-  AGGREGATION_MAPPING = 'auswertungen',
-  AGGREGATION_MAPPING_NEU = 'auswertungen/neu',
-  AGGREGATION_MAPPING_ID = 'auswertungen/:aggregationMappingId',
+  AGGREGATION_MAPPING = 'statistik/auswertungen',
+  AGGREGATION_MAPPING_NEU = 'statistik/auswertungen/neu',
+  AGGREGATION_MAPPING_ID = 'statistik/auswertungen/:aggregationMappingId',
+  DATENFREIGABEN = 'statistik/datenfreigaben',
+  DATENANFRAGEN = 'statistik/datenanfragen',
 }
diff --git a/alfa-client/libs/admin/user/src/lib/user-list-container/user-list/user/user-data/user-data.component.html b/alfa-client/libs/admin/user/src/lib/user-list-container/user-list/user/user-data/user-data.component.html
index 724611322e3e1981be20759e047c75d528b3bdbf..14969fcd27aa025339218f897d1b910a33859c67 100644
--- a/alfa-client/libs/admin/user/src/lib/user-list-container/user-list/user/user-data/user-data.component.html
+++ b/alfa-client/libs/admin/user/src/lib/user-list-container/user-list/user/user-data/user-data.component.html
@@ -2,7 +2,7 @@
   <div *ngIf="user.email" class="flex items-center gap-2">
     <dt>
       <span class="sr-only">E-Mail:</span>
-      <ods-icon name="mailbox" size="small" class="fill-gray-600" />
+      <ods-icon name="mail" size="small" class="fill-gray-600" />
     </dt>
     <dd data-test-class="email">{{ user.email }}</dd>
   </div>
diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts
index e3190c7e52079ffe86a516ab9996eca556da6bf0..c54347c8602b2938404b3c95a5579770d32cd9c1 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.spec.ts
@@ -196,7 +196,7 @@ describe('BescheidService', () => {
     it('should reload postfach list', () => {
       service.exit();
 
-      expect(postfachService._setPostfachMailOnReload).toHaveBeenCalled();
+      expect(postfachService.setPostfachMailOnReload).toHaveBeenCalled();
     });
 
     it('should clear uploaded files', () => {
diff --git a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
index 18e048dcf2802f7c39cd6ee5b5b172a44af7a448..ebc1fabf474900bd73059787b26fc641353a7f72 100644
--- a/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
+++ b/alfa-client/libs/bescheid-shared/src/lib/bescheid.service.ts
@@ -113,7 +113,7 @@ export class BescheidService {
 
   public exit(): void {
     this.bescheidListResourceService.refresh();
-    this.postfachService._setPostfachMailOnReload();
+    this.postfachService.setPostfachMailOnReload();
     this._clearUploadedFiles();
   }
 
diff --git a/alfa-client/libs/design-system/src/assets/bar-chart-arrow.svg b/alfa-client/libs/design-system/src/assets/bar-chart-arrow.svg
new file mode 100644
index 0000000000000000000000000000000000000000..5fa29da37f947b16181d270179918d9f42527e01
--- /dev/null
+++ b/alfa-client/libs/design-system/src/assets/bar-chart-arrow.svg
@@ -0,0 +1,11 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+  <path
+    d="M9 24L7.6 22.6L9.35 20.8C7.21667 20.5167 5.45833 19.9333 4.075 19.05C2.69167 18.1667 2 17.15 2 16C2 14.6167 2.9625 13.4375 4.8875 12.4625C6.8125 11.4875 9.18333 11 12 11C14.8167 11 17.1875 11.4875 19.1125 12.4625C21.0375 13.4375 22 14.6167 22 16C22 17.0333 21.4458 17.9583 20.3375 18.775C19.2292 19.5917 17.7833 20.2 16 20.6V18.55C17.2833 18.2167 18.2708 17.8042 18.9625 17.3125C19.6542 16.8208 20 16.3833 20 16C20 15.4667 19.2875 14.8333 17.8625 14.1C16.4375 13.3667 14.4833 13 12 13C9.51667 13 7.5625 13.3667 6.1375 14.1C4.7125 14.8333 4 15.4667 4 16C4 16.4 4.425 16.8792 5.275 17.4375C6.125 17.9958 7.33333 18.4167 8.9 18.7L7.6 17.4L9 16L13 20L9 24Z"
+    mask="url(#transparent-rect)" />
+  <path
+    d="M4.5 14.75V13.25H19.5V14.75H4.5ZM5.25 12.5V7.25H7.5V12.5H5.25ZM9 12.5V3.5H11.25V12.5H9ZM12.75 12.5V5.75H15V12.5H12.75ZM16.5 12.5V1.25H18.75V12.5H16.5Z" />
+  <mask id="transparent-rect">
+    <rect x="0" y="0" width="100%" height="100%" fill="white" />
+    <path d="M4 0H20V16H4V0Z" fill="black" />
+  </mask>
+</svg>
\ No newline at end of file
diff --git a/alfa-client/libs/design-system/src/assets/bubble-question-mark.svg b/alfa-client/libs/design-system/src/assets/bubble-question-mark.svg
new file mode 100644
index 0000000000000000000000000000000000000000..6c0e60974af73c8c2796d0f0f663d67f1fd802a3
--- /dev/null
+++ b/alfa-client/libs/design-system/src/assets/bubble-question-mark.svg
@@ -0,0 +1,4 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+  <path
+    d="M12 22L11.75 19H11.5C9.13333 19 7.125 18.175 5.475 16.525C3.825 14.875 3 12.8667 3 10.5C3 8.13333 3.825 6.125 5.475 4.475C7.125 2.825 9.13333 2 11.5 2C12.6833 2 13.7875 2.22083 14.8125 2.6625C15.8375 3.10417 16.7375 3.7125 17.5125 4.4875C18.2875 5.2625 18.8958 6.1625 19.3375 7.1875C19.7792 8.2125 20 9.31667 20 10.5C20 11.75 19.7958 12.95 19.3875 14.1C18.9792 15.25 18.4208 16.3167 17.7125 17.3C17.0042 18.2833 16.1625 19.175 15.1875 19.975C14.2125 20.775 13.15 21.45 12 22ZM14 18.35C15.1833 17.35 16.1458 16.1792 16.8875 14.8375C17.6292 13.4958 18 12.05 18 10.5C18 8.68333 17.3708 7.14583 16.1125 5.8875C14.8542 4.62917 13.3167 4 11.5 4C9.68333 4 8.14583 4.62917 6.8875 5.8875C5.62917 7.14583 5 8.68333 5 10.5C5 12.3167 5.62917 13.8542 6.8875 15.1125C8.14583 16.3708 9.68333 17 11.5 17H14V18.35ZM11.475 15.975C11.7583 15.975 12 15.875 12.2 15.675C12.4 15.475 12.5 15.2333 12.5 14.95C12.5 14.6667 12.4 14.425 12.2 14.225C12 14.025 11.7583 13.925 11.475 13.925C11.1917 13.925 10.95 14.025 10.75 14.225C10.55 14.425 10.45 14.6667 10.45 14.95C10.45 15.2333 10.55 15.475 10.75 15.675C10.95 15.875 11.1917 15.975 11.475 15.975ZM10.75 12.8H12.25C12.25 12.3 12.3 11.95 12.4 11.75C12.5 11.55 12.8167 11.1833 13.35 10.65C13.65 10.35 13.9 10.025 14.1 9.675C14.3 9.325 14.4 8.95 14.4 8.55C14.4 7.7 14.1125 7.0625 13.5375 6.6375C12.9625 6.2125 12.2833 6 11.5 6C10.7667 6 10.15 6.20417 9.65 6.6125C9.15 7.02083 8.8 7.51667 8.6 8.1L10 8.65C10.0833 8.36667 10.2417 8.0875 10.475 7.8125C10.7083 7.5375 11.05 7.4 11.5 7.4C11.95 7.4 12.2875 7.525 12.5125 7.775C12.7375 8.025 12.85 8.3 12.85 8.6C12.85 8.88333 12.7667 9.1375 12.6 9.3625C12.4333 9.5875 12.2333 9.81667 12 10.05C11.4167 10.55 11.0625 10.9458 10.9375 11.2375C10.8125 11.5292 10.75 12.05 10.75 12.8Z" />
+</svg>
\ No newline at end of file
diff --git a/alfa-client/libs/design-system/src/assets/mail-unread.svg b/alfa-client/libs/design-system/src/assets/mail-unread.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d70254f7274d6950356771f1b6c7ce4cdaf23d3c
--- /dev/null
+++ b/alfa-client/libs/design-system/src/assets/mail-unread.svg
@@ -0,0 +1,4 @@
+<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+  <path
+    d="M4 20C3.45 20 2.97917 19.8042 2.5875 19.4125C2.19583 19.0208 2 18.55 2 18V6C2 5.45 2.19583 4.97917 2.5875 4.5875C2.97917 4.19583 3.45 4 4 4H14.1C14.0333 4.33333 14 4.66667 14 5C14 5.33333 14.0333 5.66667 14.1 6H4L12 11L15.65 8.725C15.8833 8.94167 16.1375 9.12917 16.4125 9.2875C16.6875 9.44583 16.975 9.58333 17.275 9.7L12 13L4 8V18H20V9.9C20.3833 9.81667 20.7417 9.7 21.075 9.55C21.4083 9.4 21.7167 9.21667 22 9V18C22 18.55 21.8042 19.0208 21.4125 19.4125C21.0208 19.8042 20.55 20 20 20H4ZM19 8C18.1667 8 17.4583 7.70833 16.875 7.125C16.2917 6.54167 16 5.83333 16 5C16 4.16667 16.2917 3.45833 16.875 2.875C17.4583 2.29167 18.1667 2 19 2C19.8333 2 20.5417 2.29167 21.125 2.875C21.7083 3.45833 22 4.16667 22 5C22 5.83333 21.7083 6.54167 21.125 7.125C20.5417 7.70833 19.8333 8 19 8Z" />
+</svg>
\ No newline at end of file
diff --git a/alfa-client/libs/design-system/src/assets/mailbox.svg b/alfa-client/libs/design-system/src/assets/mail.svg
similarity index 100%
rename from alfa-client/libs/design-system/src/assets/mailbox.svg
rename to alfa-client/libs/design-system/src/assets/mail.svg
diff --git a/alfa-client/libs/design-system/src/index.ts b/alfa-client/libs/design-system/src/index.ts
index be39753a4ea4f3b00c1605b96a33fce8ff5b5fe1..abdb78ae51c1cc3eaf992d4b3f54b5b2554858ae 100644
--- a/alfa-client/libs/design-system/src/index.ts
+++ b/alfa-client/libs/design-system/src/index.ts
@@ -47,12 +47,14 @@ export * from './lib/forwarding-item/forwarding-item.component';
 export * from './lib/icon/icon.component';
 export * from './lib/icons/file-icon/file-icon.component';
 export * from './lib/icons/iconVariants';
+export * from './lib/icons/mail-icon/mail-icon.component';
 export * from './lib/icons/spinner-icon/spinner-icon.component';
 export * from './lib/instant-search/instant-search/instant-search.component';
 export * from './lib/instant-search/instant-search/instant-search.model';
 export * from './lib/link/link.component';
 export * from './lib/list/list-item/list-item.component';
 export * from './lib/list/list.component';
+export * from './lib/navbar/nav-headline/nav-headline.component';
 export * from './lib/navbar/nav-item/nav-item.component';
 export * from './lib/navbar/navbar/navbar.component';
 export * from './lib/testbtn/testbtn.component';
diff --git a/alfa-client/libs/design-system/src/lib/badge/badge.component.spec.ts b/alfa-client/libs/design-system/src/lib/badge/badge.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4b8185d7985f5982930b48ddeffa952fff4d9f01
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/badge/badge.component.spec.ts
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BadgeComponent } from './badge.component';
+
+describe('BadgeComponent', () => {
+  let component: BadgeComponent;
+  let fixture: ComponentFixture<BadgeComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [BadgeComponent],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(BadgeComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/alfa-client/libs/design-system/src/lib/badge/badge.component.ts b/alfa-client/libs/design-system/src/lib/badge/badge.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..3ac3c705b500cbdada413868fd62d5d76cd488d4
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/badge/badge.component.ts
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+import { CommonModule } from '@angular/common';
+import { Component, Input } from '@angular/core';
+
+@Component({
+  selector: 'ods-badge',
+  standalone: true,
+  imports: [CommonModule],
+  template: `<p class="rounded-full bg-primary px-2 py-0.5 text-sm text-whitetext">{{ name }}</p>`,
+  styles: [':host {@apply block w-fit}'],
+})
+export class BadgeComponent {
+  @Input({ required: true }) name!: string;
+}
diff --git a/alfa-client/libs/design-system/src/lib/badge/badge.stories.ts b/alfa-client/libs/design-system/src/lib/badge/badge.stories.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c7dd442fcc0622f1068ea5961f2e550fc515496f
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/badge/badge.stories.ts
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+import { type Meta, type StoryObj } from '@storybook/angular';
+import { BadgeComponent } from './badge.component';
+
+const meta: Meta = {
+  title: 'Badge',
+  excludeStories: /.*Data$/,
+  component: BadgeComponent,
+  tags: ['autodocs'],
+  parameters: {
+    docs: {
+      description: {
+        component: 'The badge with some text',
+      },
+    },
+  },
+};
+
+export default meta;
+type Story = StoryObj<BadgeComponent>;
+
+export const Default: Story = {
+  args: { name: 'NEU' },
+};
diff --git a/alfa-client/libs/design-system/src/lib/icon/icon.stories.ts b/alfa-client/libs/design-system/src/lib/icon/icon.stories.ts
index 9dca7ffa6b29759768a9f714bce77f411d2069b3..172985ea37a409b00ef5eb53ebdcd8242c0f5f5f 100644
--- a/alfa-client/libs/design-system/src/lib/icon/icon.stories.ts
+++ b/alfa-client/libs/design-system/src/lib/icon/icon.stories.ts
@@ -52,8 +52,10 @@ const ICONS_LIST: string[] = [
   'archive',
   'arrow-back',
   'attachment',
+  'bar-chart-arrow',
   'bescheid-generate',
   'bescheid-upload',
+  'bubble-question-mark',
   'check-circle',
   'check',
   'close',
@@ -68,7 +70,7 @@ const ICONS_LIST: string[] = [
   'help',
   'info',
   'logout',
-  'mailbox',
+  'mail',
   'more',
   'office',
   'open-link',
@@ -97,7 +99,7 @@ type Story = StoryObj<IconComponent>;
 
 export const Default: Story = {
   args: {
-    name: 'mailbox',
+    name: 'mail',
     size: 'extra-large',
     fill: 'primary',
     class: '',
diff --git a/alfa-client/libs/design-system/src/lib/icons/mail-icon/mail-icon.component.spec.ts b/alfa-client/libs/design-system/src/lib/icons/mail-icon/mail-icon.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..31c0239ddf6992b6eb516bcb6e6820874da0f159
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/icons/mail-icon/mail-icon.component.spec.ts
@@ -0,0 +1,21 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { MailIconComponent } from './mail-icon.component';
+
+describe('MailIconComponent', () => {
+  let component: MailIconComponent;
+  let fixture: ComponentFixture<MailIconComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [MailIconComponent],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(MailIconComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/alfa-client/libs/design-system/src/lib/icons/mail-icon/mail-icon.component.ts b/alfa-client/libs/design-system/src/lib/icons/mail-icon/mail-icon.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9637fa49a5b1bcf44b3448f7ac22ea86d8a3c65b
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/icons/mail-icon/mail-icon.component.ts
@@ -0,0 +1,46 @@
+import { NgClass } from '@angular/common';
+import { Component, Input } from '@angular/core';
+import { twMerge } from 'tailwind-merge';
+import { IconVariants, iconVariants } from '../iconVariants';
+
+@Component({
+  selector: 'ods-mail-icon',
+  standalone: true,
+  imports: [NgClass],
+  template: ` <div class="relative inline-block">
+    <svg
+      viewBox="0 0 24 24"
+      fill="none"
+      xmlns="http://www.w3.org/2000/svg"
+      [ngClass]="twMerge(iconVariants({ size }), 'stroke-text', class)"
+    >
+      <path
+        d="M20 4H4C2.89543 4 2 4.89543 2 6V18C2 19.1046 2.89543 20 4 20H20C21.1046 20 22 19.1046 22 18V6C22 4.89543 21.1046 4 20 4Z"
+        stroke-width="2"
+        stroke-linecap="round"
+        stroke-linejoin="round"
+      />
+      <path
+        d="M22 7L13.03 12.7C12.7213 12.8934 12.3643 12.996 12 12.996C11.6357 12.996 11.2787 12.8934 10.97 12.7L2 7"
+        stroke-width="2"
+        stroke-linecap="round"
+        stroke-linejoin="round"
+      />
+    </svg>
+    @if (withBadge) {
+      <div
+        [ngClass]="twMerge('absolute right-0.5 top-1 h-2.5 w-2.5 -translate-y-1/2 translate-x-1/2 rounded-full', badgeClass)"
+        data-test-class="mail-icon-badge"
+      ></div>
+    }
+  </div>`,
+})
+export class MailIconComponent {
+  @Input() size: IconVariants['size'] = 'medium';
+  @Input() class: string = undefined;
+  @Input() withBadge: boolean = false;
+  @Input() badgeClass: string = 'bg-primary';
+
+  readonly iconVariants = iconVariants;
+  readonly twMerge = twMerge;
+}
diff --git a/alfa-client/libs/design-system/src/lib/icons/mail-icon/mail-icon.stories.ts b/alfa-client/libs/design-system/src/lib/icons/mail-icon/mail-icon.stories.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8fe25c255e0edd123a7f14c47898b6a43085a3b1
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/icons/mail-icon/mail-icon.stories.ts
@@ -0,0 +1,27 @@
+import type { Meta, StoryObj } from '@storybook/angular';
+
+import { MailIconComponent } from './mail-icon.component';
+
+const meta: Meta<MailIconComponent> = {
+  title: 'Icons/Mail icon',
+  component: MailIconComponent,
+  excludeStories: /.*Data$/,
+  tags: ['autodocs'],
+};
+
+export default meta;
+type Story = StoryObj<MailIconComponent>;
+
+export const Default: Story = {
+  args: { size: 'medium' },
+  argTypes: {
+    size: {
+      control: 'select',
+      options: ['small', 'medium', 'large', 'extra-large', 'full'],
+      description: 'Size of icon. Property "full" means 100%',
+      table: {
+        defaultValue: { summary: 'medium' },
+      },
+    },
+  },
+};
diff --git a/alfa-client/libs/design-system/src/lib/navbar/nav-headline/nav-headline.component.spec.ts b/alfa-client/libs/design-system/src/lib/navbar/nav-headline/nav-headline.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..87b6c41a79167c09dba108c2b91d5419c4fc764e
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/navbar/nav-headline/nav-headline.component.spec.ts
@@ -0,0 +1,21 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { NavHeadlineComponent } from './nav-headline.component';
+
+describe('NavHeadlineComponent', () => {
+  let component: NavHeadlineComponent;
+  let fixture: ComponentFixture<NavHeadlineComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      imports: [NavHeadlineComponent],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(NavHeadlineComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/alfa-client/libs/design-system/src/lib/navbar/nav-headline/nav-headline.component.ts b/alfa-client/libs/design-system/src/lib/navbar/nav-headline/nav-headline.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a2f538b5dbcd9b0f645c4de453680d43d2e35452
--- /dev/null
+++ b/alfa-client/libs/design-system/src/lib/navbar/nav-headline/nav-headline.component.ts
@@ -0,0 +1,12 @@
+import { CommonModule } from '@angular/common';
+import { Component, Input } from '@angular/core';
+
+@Component({
+  selector: 'ods-nav-headline',
+  standalone: true,
+  imports: [CommonModule],
+  template: `<p class="mx-4 my-2 font-medium">{{ label }}</p>`,
+})
+export class NavHeadlineComponent {
+  @Input({ required: true }) label!: string;
+}
diff --git a/alfa-client/libs/design-system/src/lib/navbar/nav-item/nav-item.component.spec.ts b/alfa-client/libs/design-system/src/lib/navbar/nav-item/nav-item.component.spec.ts
index f4fd0fc39d030ec83824c3c8c0a7daefe3764de6..9ca22bdf1bf60e983a3bdd5db1a8cf2193c62fff 100644
--- a/alfa-client/libs/design-system/src/lib/navbar/nav-item/nav-item.component.spec.ts
+++ b/alfa-client/libs/design-system/src/lib/navbar/nav-item/nav-item.component.spec.ts
@@ -22,7 +22,7 @@
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
 import { convertForDataTest, ConvertForDataTestPipe } from '@alfa-client/tech-shared';
-import { getElementFromFixture, Mock, mock } from '@alfa-client/test-utils';
+import { existsAsHtmlElement, getElementFromFixture, Mock, mock, notExistsAsHtmlElement } from '@alfa-client/test-utils';
 import { importProvidersFrom } from '@angular/core';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { Router, RouterModule } from '@angular/router';
@@ -33,6 +33,8 @@ describe('NavItemComponent', () => {
   let component: NavItemComponent;
   let fixture: ComponentFixture<NavItemComponent>;
 
+  const badgeLocator: string = getDataTestIdOf('nav-item-badge');
+
   const router: Mock<Router> = mock(Router);
 
   beforeEach(async () => {
@@ -88,5 +90,23 @@ describe('NavItemComponent', () => {
         expect(fixture.nativeElement.getAttribute('role')).toBe('menuitem');
       });
     });
+
+    describe('badge', () => {
+      it('should show', () => {
+        component.badge = true;
+
+        fixture.detectChanges();
+
+        existsAsHtmlElement(fixture, badgeLocator);
+      });
+
+      it('should hide', () => {
+        component.badge = false;
+
+        fixture.detectChanges();
+
+        notExistsAsHtmlElement(fixture, badgeLocator);
+      });
+    });
   });
 });
diff --git a/alfa-client/libs/design-system/src/lib/navbar/nav-item/nav-item.component.ts b/alfa-client/libs/design-system/src/lib/navbar/nav-item/nav-item.component.ts
index a3bd688e8120d42fba03efcde48d23510fdc66e7..603edf5d5aa1dc7a99c13857b9a17b36e1fb71cc 100644
--- a/alfa-client/libs/design-system/src/lib/navbar/nav-item/nav-item.component.ts
+++ b/alfa-client/libs/design-system/src/lib/navbar/nav-item/nav-item.component.ts
@@ -23,26 +23,33 @@
  */
 import { ConvertForDataTestPipe } from '@alfa-client/tech-shared';
 import { CommonModule } from '@angular/common';
-import { Component, HostBinding, Input } from '@angular/core';
+import { booleanAttribute, Component, HostBinding, Input } from '@angular/core';
 import { RouterLink, RouterLinkActive } from '@angular/router';
+import { BadgeComponent } from '../../badge/badge.component';
 
 @Component({
   selector: 'ods-nav-item',
   standalone: true,
-  imports: [CommonModule, RouterLink, RouterLinkActive, ConvertForDataTestPipe],
+  imports: [CommonModule, RouterLink, RouterLinkActive, ConvertForDataTestPipe, BadgeComponent],
   template: `<a
     [routerLink]="path"
     routerLinkActive="bg-selected-light border-selected"
-    class="flex min-h-8 items-center gap-2 rounded-2xl border border-transparent px-4 py-2 outline-2 outline-offset-2 outline-focus hover:border-primary focus-visible:border-background-200 focus-visible:outline"
+    class="flex min-h-8 items-center justify-between rounded-2xl border border-transparent px-4 py-2 outline-2 outline-offset-2 outline-focus hover:border-primary focus-visible:border-background-200 focus-visible:outline"
     [attr.data-test-id]="'link-path-' + path | convertForDataTest"
   >
-    <ng-content select="[icon]" />
-    <p class="text-left text-sm text-text" [attr.data-test-id]="'caption-' + caption | convertForDataTest">{{ caption }}</p>
+    <div class="flex items-center gap-2">
+      <ng-content select="[icon]" />
+      <p class="text-left text-sm text-text" [attr.data-test-id]="'caption-' + caption | convertForDataTest">{{ caption }}</p>
+    </div>
+    @if (badge) {
+      <ods-badge data-test-id="nav-item-badge" name="NEU" />
+    }
   </a>`,
 })
 export class NavItemComponent {
   @Input({ required: true }) caption!: string;
   @Input() path: string;
+  @Input({ transform: booleanAttribute }) badge: boolean = false;
 
   @HostBinding('attr.role') role: string = 'menuitem';
 }
diff --git a/alfa-client/libs/design-system/src/lib/navbar/navbar/navbar.stories.ts b/alfa-client/libs/design-system/src/lib/navbar/navbar/navbar.stories.ts
index 20911e3aa601b25c0b8014d5b92e6d4d54f00b76..f5715c3108177e5748d78482b576a7553a6656f6 100644
--- a/alfa-client/libs/design-system/src/lib/navbar/navbar/navbar.stories.ts
+++ b/alfa-client/libs/design-system/src/lib/navbar/navbar/navbar.stories.ts
@@ -26,6 +26,7 @@ import { importProvidersFrom } from '@angular/core';
 import { RouterModule } from '@angular/router';
 import { applicationConfig, moduleMetadata, type Meta, type StoryObj } from '@storybook/angular';
 import { IconComponent } from '../../icon/icon.component';
+import { NavHeadlineComponent } from '../nav-headline/nav-headline.component';
 import { NavItemComponent } from '../nav-item/nav-item.component';
 import { NavbarComponent } from './navbar.component';
 
@@ -39,7 +40,7 @@ const meta: Meta<NavbarComponent> = {
       providers: [importProvidersFrom(RouterModule.forRoot([]))],
     }),
     moduleMetadata({
-      imports: [NavItemComponent, IconComponent],
+      imports: [NavItemComponent, NavHeadlineComponent, IconComponent],
       providers: [
         {
           provide: APP_BASE_HREF,
@@ -57,6 +58,7 @@ export const Default: Story = {
   args: {},
   render: () => ({
     template: `<ods-navbar>
+      <ods-nav-headline label="Statstik" />
       <ods-nav-item caption="First link" path="/"><ods-icon icon name="office" /></ods-nav-item>
       <ods-nav-item caption="Second link" path="/second"><ods-icon icon name="office" /></ods-nav-item>
       <hr />
diff --git a/alfa-client/libs/navigation-shared/src/lib/navigation.service.spec.ts b/alfa-client/libs/navigation-shared/src/lib/navigation.service.spec.ts
index 2dfb53b8b701d62064bc186796bcb2ec4edfacb8..d24cf96c299b8542c54e1daab9a9089c44b38e95 100644
--- a/alfa-client/libs/navigation-shared/src/lib/navigation.service.spec.ts
+++ b/alfa-client/libs/navigation-shared/src/lib/navigation.service.spec.ts
@@ -243,32 +243,6 @@ describe('NavigationService', () => {
     });
   });
 
-  describe('is postfach page', () => {
-    it('should return true if "postfach" exists in url', () => {
-      service.routeUrlSegment$.next(<any>[{ path: 'postfach' }]);
-
-      const isPostfachPage: boolean = service.isPostfachPage();
-
-      expect(isPostfachPage).toBeTruthy();
-    });
-
-    it('should return false if "postfach" not exists in url', () => {
-      service.routeUrlSegment$.next(<any>[{ path: 'something else' }]);
-
-      const isPostfachPage: boolean = service.isPostfachPage();
-
-      expect(isPostfachPage).toBeFalsy();
-    });
-
-    it('should return false if routeUrl is empty', () => {
-      service.routeUrlSegment$.next(<any>[]);
-
-      const isPostfachPage: boolean = service.isPostfachPage();
-
-      expect(isPostfachPage).toBeFalsy();
-    });
-  });
-
   describe('navigate', () => {
     const navigationRoute: string = 'dummyNavigationRoute';
 
diff --git a/alfa-client/libs/navigation-shared/src/lib/navigation.service.ts b/alfa-client/libs/navigation-shared/src/lib/navigation.service.ts
index 7b1c65e93ef278fb0fd09c73a5fcb5403ab5ea36..ecbcbbfd012cae62a49da0077a9325312fbf3067 100644
--- a/alfa-client/libs/navigation-shared/src/lib/navigation.service.ts
+++ b/alfa-client/libs/navigation-shared/src/lib/navigation.service.ts
@@ -232,13 +232,6 @@ export class NavigationService {
     ]);
   }
 
-  public isPostfachPage(): boolean {
-    const postfachUrlSegement: UrlSegment = this.routeUrlSegment$.value.find((urlSegment) =>
-      urlSegment.path.includes('postfach'),
-    );
-    return isNotNil(postfachUrlSegement);
-  }
-
   public getCurrentRouteData(): Observable<RouteData> {
     return this.facade.getCurrentRouteData();
   }
diff --git a/alfa-client/libs/postfach-shared/src/lib/postfach.linkrel.ts b/alfa-client/libs/postfach-shared/src/lib/postfach.linkrel.ts
index 5860f9c51f3eab5fa1f6132a74890b74faac7a7f..8617b6bab78053fe6e186c151b298ba25dafed97 100644
--- a/alfa-client/libs/postfach-shared/src/lib/postfach.linkrel.ts
+++ b/alfa-client/libs/postfach-shared/src/lib/postfach.linkrel.ts
@@ -26,6 +26,7 @@ export enum PostfachMailListLinkRel {
   SEND_POSTFACH_MAIL = 'sendPostfachMail',
   UPLOAD_ATTACHMENT = 'uploadAttachment',
   RESET_HAS_NEW_POSTFACH_NACHRICHT = 'resetHasNewPostfachNachricht',
+  SET_HAS_NEW_POSTFACH_NACHRICHT = 'setHasNewPostfachNachricht',
 }
 
 export enum PostfachMailLinkRel {
diff --git a/alfa-client/libs/postfach-shared/src/lib/postfach.repository.spec.ts b/alfa-client/libs/postfach-shared/src/lib/postfach.repository.spec.ts
index 19dc4a384e2a936b2230b38914c40e85ee5c7377..377719bb0187815df301380b394fd0e924df684f 100644
--- a/alfa-client/libs/postfach-shared/src/lib/postfach.repository.spec.ts
+++ b/alfa-client/libs/postfach-shared/src/lib/postfach.repository.spec.ts
@@ -84,10 +84,29 @@ describe('PostfachRepository', () => {
     it('should call resourceWrapper with link', () => {
       repository.resetHasNewPostfachNachrichten(postfachMailListResource);
 
-      expect(resourceWrapper.put).toHaveBeenCalledWith(
-        PostfachMailListLinkRel.RESET_HAS_NEW_POSTFACH_NACHRICHT,
-        { hasNewPostfachNachricht: false },
-      );
+      expect(resourceWrapper.put).toHaveBeenCalledWith(PostfachMailListLinkRel.RESET_HAS_NEW_POSTFACH_NACHRICHT, {
+        hasNewPostfachNachricht: false,
+      });
+    });
+  });
+
+  describe('markPostfachAsUnread', () => {
+    const postfachMailListResource: PostfachMailListResource = createPostfachMailListResource([
+      PostfachMailListLinkRel.SET_HAS_NEW_POSTFACH_NACHRICHT,
+    ]);
+
+    it('should call resourceFactory with resource', () => {
+      repository.markPostfachAsUnread(postfachMailListResource);
+
+      expect(resourceFactory.from).toHaveBeenCalledWith(postfachMailListResource);
+    });
+
+    it('should call resourceWrapper with link', () => {
+      repository.markPostfachAsUnread(postfachMailListResource);
+
+      expect(resourceWrapper.put).toHaveBeenCalledWith(PostfachMailListLinkRel.SET_HAS_NEW_POSTFACH_NACHRICHT, {
+        hasNewPostfachNachricht: true,
+      });
     });
   });
 });
diff --git a/alfa-client/libs/postfach-shared/src/lib/postfach.repository.ts b/alfa-client/libs/postfach-shared/src/lib/postfach.repository.ts
index b56f7e1a51b3942c53a45264c1c546fc29cfc057..8a8b03f3d3e046197489b035ef6071b8026178cd 100644
--- a/alfa-client/libs/postfach-shared/src/lib/postfach.repository.ts
+++ b/alfa-client/libs/postfach-shared/src/lib/postfach.repository.ts
@@ -21,8 +21,8 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { Injectable } from '@angular/core';
 import { VorgangHeaderLinkRel, VorgangResource } from '@alfa-client/vorgang-shared';
+import { Injectable } from '@angular/core';
 import { ResourceFactory } from '@ngxp/rest';
 import { Observable } from 'rxjs';
 import { PostfachMailListLinkRel } from './postfach.linkrel';
@@ -36,13 +36,15 @@ export class PostfachRepository {
     return this.resourceFactory.from(vorgang).get(VorgangHeaderLinkRel.POSTFACH_MAILS);
   }
 
-  public resetHasNewPostfachNachrichten(
-    postfachNachrichtenList: PostfachMailListResource,
-  ): Observable<unknown> {
-    return this.resourceFactory
-      .from(postfachNachrichtenList)
-      .put(PostfachMailListLinkRel.RESET_HAS_NEW_POSTFACH_NACHRICHT, {
-        hasNewPostfachNachricht: false,
-      });
+  public resetHasNewPostfachNachrichten(postfachNachrichtenList: PostfachMailListResource): Observable<unknown> {
+    return this.resourceFactory.from(postfachNachrichtenList).put(PostfachMailListLinkRel.RESET_HAS_NEW_POSTFACH_NACHRICHT, {
+      hasNewPostfachNachricht: false,
+    });
+  }
+
+  public markPostfachAsUnread(postfachNachrichtenList: PostfachMailListResource): Observable<unknown> {
+    return this.resourceFactory.from(postfachNachrichtenList).put(PostfachMailListLinkRel.SET_HAS_NEW_POSTFACH_NACHRICHT, {
+      hasNewPostfachNachricht: true,
+    });
   }
 }
diff --git a/alfa-client/libs/postfach-shared/src/lib/postfach.service.spec.ts b/alfa-client/libs/postfach-shared/src/lib/postfach.service.spec.ts
index 5c12de2fd83f0627efe61ab7dd04681173fba0a3..f56688a6e9631052cc6ae12b4b1a173e8e1eda30 100644
--- a/alfa-client/libs/postfach-shared/src/lib/postfach.service.spec.ts
+++ b/alfa-client/libs/postfach-shared/src/lib/postfach.service.spec.ts
@@ -23,20 +23,29 @@
  */
 import { BinaryFileService } from '@alfa-client/binary-file-shared';
 import { CommandResource, CommandService } from '@alfa-client/command-shared';
-import { NavigationService } from '@alfa-client/navigation-shared';
-import { createEmptyStateResource, createStateResource, StateResource } from '@alfa-client/tech-shared';
+import { NavigationFacade, NavigationService, RouteData } from '@alfa-client/navigation-shared';
+import {
+  createEmptyStateResource,
+  createErrorStateResource,
+  createLoadingStateResource,
+  createStateResource,
+  StateResource,
+} from '@alfa-client/tech-shared';
 import { Mock, mock } from '@alfa-client/test-utils';
 import { SnackBarService } from '@alfa-client/ui';
-import { VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
+import { VORGANG_WITH_EINGANG_ROUTE_PARAM, VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
 import { TestBed } from '@angular/core/testing';
 import { MatDialog } from '@angular/material/dialog';
-import { expect } from '@jest/globals';
+import { faker } from '@faker-js/faker';
+import { beforeEach, expect } from '@jest/globals';
 import { getUrl } from '@ngxp/rest';
+import { hot } from 'jest-marbles';
 import { CommandLinkRel } from 'libs/command-shared/src/lib/command.linkrel';
 import { createCommandErrorResource, createCommandResource } from 'libs/command-shared/test/command';
 import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang';
 import { BehaviorSubject, Observable, of } from 'rxjs';
-import { singleColdCompleted } from '../../../tech-shared/test/marbles';
+import { createProblemDetail } from '../../../tech-shared/test/error';
+import { multipleCold, singleColdCompleted, singleHot } from '../../../tech-shared/test/marbles';
 import {
   createPostfachFeatures,
   createPostfachMail,
@@ -63,6 +72,7 @@ describe('PostfachService', () => {
   const dialog: Mock<MatDialog> = <Mock<MatDialog>>{ closeAll: jest.fn() };
   const postfachFacade: Mock<PostfachFacade> = mock(PostfachFacade);
   const binaryFileService: Mock<BinaryFileService> = mock(BinaryFileService);
+  const navigationFacade = mock(NavigationFacade);
 
   const urlChangedParams = {};
 
@@ -72,6 +82,7 @@ describe('PostfachService', () => {
   beforeEach(() => {
     vorgangService = {
       ...mock(VorgangService),
+      getVorgangWithEingang: jest.fn().mockReturnValue(of(vorgangWithEingangStateResource)),
       selectVorgangWithEingang: jest.fn().mockReturnValue(of(vorgangWithEingangStateResource)),
     };
     navigationService.urlChanged = jest.fn();
@@ -89,6 +100,7 @@ describe('PostfachService', () => {
         { provide: PostfachFacade, useValue: postfachFacade },
         { provide: BinaryFileService, useValue: binaryFileService },
         { provide: PostfachRepository, useValue: repository },
+        { provide: NavigationFacade, useValue: navigationFacade },
         PostfachService,
       ],
     });
@@ -348,27 +360,6 @@ describe('PostfachService', () => {
         expect(service.postfachMailList$.value.reload).toEqual(true);
       });
     });
-
-    describe('to postfach page', () => {
-      beforeEach(() => {
-        service._resetHasNewPostfachNachrichten = jest.fn();
-        navigationService.isPostfachPage.mockReturnValue(true);
-      });
-
-      it('should call navigationService', () => {
-        service._onNavigation({});
-
-        expect(navigationService.isPostfachPage).toHaveBeenCalled();
-      });
-
-      it('should reset hasNewPostfachNachrichten', () => {
-        navigationService.isPostfachPage.mockReturnValue(true);
-
-        service._onNavigation({});
-
-        expect(service._resetHasNewPostfachNachrichten).toHaveBeenCalled();
-      });
-    });
   });
 
   describe('getPendingSendPostfachMailCommand', () => {
@@ -387,56 +378,125 @@ describe('PostfachService', () => {
     });
   });
 
+  describe('getPostfachNachrichtListAsRead', () => {
+    const state: StateResource<PostfachMailListResource> = createStateResource(createPostfachMailListResource());
+    const stateAfterReset: StateResource<PostfachMailListResource> = createStateResource(createPostfachMailListResource());
+
+    beforeEach(() => {
+      service.getPostfachMailListByVorgang = jest.fn().mockReturnValue(of(state));
+      service._resetHasNewPostfachNachrichten = jest.fn().mockReturnValue(of(stateAfterReset));
+    });
+
+    it('should get postfach nachrichten list', () => {
+      service.getPostfachNachrichtListAsRead().subscribe();
+
+      expect(service.getPostfachMailListByVorgang).toHaveBeenCalled();
+    });
+
+    it('should call service resetHasNewPostfachNachrichten', () => {
+      service.getPostfachNachrichtListAsRead().subscribe();
+
+      expect(service._resetHasNewPostfachNachrichten).toHaveBeenCalled();
+    });
+
+    it('should have return with loading', () => {
+      service.getPostfachMailListByVorgang = jest.fn().mockReturnValue(singleHot(state));
+      service._resetHasNewPostfachNachrichten = jest.fn().mockReturnValue(hot('-a', { a: stateAfterReset }));
+
+      const result = service.getPostfachNachrichtListAsRead();
+
+      expect(result).toBeObservable(multipleCold(createEmptyStateResource(true), stateAfterReset));
+    });
+  });
+
   describe('resetHasNewPostfachNachrichten', () => {
-    const postfachListNachrichtenResource: PostfachMailListResource = createPostfachMailListResource();
+    const stateWithoutLink: StateResource<PostfachMailListResource> = createStateResource(createPostfachMailListResource());
+    const stateWithLink: StateResource<PostfachMailListResource> = createStateResource(
+      createPostfachMailListResource([PostfachMailListLinkRel.RESET_HAS_NEW_POSTFACH_NACHRICHT]),
+    );
 
-    it('should call doResetHasNewPostfachNachrichten', () => {
-      service.getPostfachMailListByVorgang = jest.fn();
-      service._doResetHasNewPostfachNachrichten = jest.fn();
-      (<any>service.getPostfachMailListByVorgang).mockReturnValue(of(postfachListNachrichtenResource));
+    beforeEach(() => {
+      service._loadAfterResetHasNewPostfachNachrichten = jest.fn().mockReturnValue(of(createEmptyStateResource(true)));
+    });
 
-      service._resetHasNewPostfachNachrichten();
+    it('should call loadAfterResetHasNewPostfachNachrichten if link', () => {
+      service._resetHasNewPostfachNachrichten(stateWithLink).subscribe();
 
-      expect(service._doResetHasNewPostfachNachrichten).toHaveBeenCalled();
+      expect(service._loadAfterResetHasNewPostfachNachrichten).toHaveBeenCalledWith(stateWithLink.resource);
+    });
+
+    it('should return loading state if link', () => {
+      const result: Observable<StateResource<PostfachMailListResource>> = service._resetHasNewPostfachNachrichten(stateWithLink);
+
+      expect(result).toBeObservable(singleColdCompleted(createLoadingStateResource<PostfachMailListResource>()));
+    });
+
+    it('should return state if no link', () => {
+      const result: Observable<StateResource<PostfachMailListResource>> =
+        service._resetHasNewPostfachNachrichten(stateWithoutLink);
+
+      expect(result).toBeObservable(singleColdCompleted(stateWithoutLink));
     });
   });
 
-  describe('doResetHasNewPostfachNachrichten', () => {
-    describe('on existing link', () => {
-      const postfachNachrichtenListResource: PostfachMailListResource = createPostfachMailListResource([
-        PostfachMailListLinkRel.RESET_HAS_NEW_POSTFACH_NACHRICHT,
-      ]);
+  describe('loadAfterResetHasNewPostfachNachrichten', () => {
+    const postfachMailListResource: PostfachMailListResource = createPostfachMailListResource();
 
-      beforeEach(() => {
-        service.postfachMailList$.next(createStateResource(postfachNachrichtenListResource));
-        repository.resetHasNewPostfachNachrichten.mockReturnValue(of(postfachNachrichtenListResource));
-      });
+    beforeEach(() => {
+      service._loadPostfachMailList = jest.fn();
+      repository.resetHasNewPostfachNachrichten = jest.fn().mockReturnValue(of({}));
+    });
 
-      it('should call repository if link exists', () => {
-        service._doResetHasNewPostfachNachrichten();
+    it('should call repository resetHasNewPostfachNachrichten', () => {
+      service._loadAfterResetHasNewPostfachNachrichten(postfachMailListResource);
 
-        expect(repository.resetHasNewPostfachNachrichten).toHaveBeenCalledWith(postfachNachrichtenListResource);
-      });
+      expect(repository.resetHasNewPostfachNachrichten).toHaveBeenCalledWith(postfachMailListResource);
     });
 
-    it('should NOT call repository if link not exists', () => {
-      const postfachNachrichtenListResource: PostfachMailListResource = createPostfachMailListResource();
-      service.postfachMailList$.next(createStateResource(postfachNachrichtenListResource));
+    it('should load postfach mail list', () => {
+      service._loadAfterResetHasNewPostfachNachrichten(postfachMailListResource);
 
-      service._doResetHasNewPostfachNachrichten();
+      expect(service._loadPostfachMailList).toHaveBeenCalled();
+    });
+  });
+
+  describe('setPostfachNachrichtListAsUnread', () => {
+    beforeEach(() => {
+      service._navigateToCurrentVorgang = jest.fn();
+      repository.markPostfachAsUnread = jest.fn().mockReturnValue(of(null));
+    });
+
+    it('should mark postfach as unread', () => {
+      service.setPostfachNachrichtListAsUnread();
 
-      expect(repository.resetHasNewPostfachNachrichten).not.toHaveBeenCalled();
+      expect(repository.markPostfachAsUnread).toHaveBeenCalled();
+    });
+
+    it('should navigate to vorgang', () => {
+      service.setPostfachNachrichtListAsUnread();
+
+      expect(service._navigateToCurrentVorgang).toHaveBeenCalled();
     });
   });
 
-  describe('getPostfachMailListByVorgang', () => {
-    const postfachMailList: PostfachMailListResource = createPostfachMailListResource();
+  describe('navigateToCurrentVorgang', () => {
+    it('should navigate to current vorgang', () => {
+      const vorgangId: string = faker.string.uuid();
+      const routeData: RouteData = {
+        urlSegments: [],
+        queryParameter: { [VORGANG_WITH_EINGANG_ROUTE_PARAM]: vorgangId },
+      };
+      navigationFacade.getCurrentRouteData.mockReturnValue(of(routeData));
 
+      service._navigateToCurrentVorgang();
+
+      expect(navigationService.navigateToVorgang).toHaveBeenCalledWith(vorgangId);
+    });
+  });
+
+  describe('getPostfachMailListByVorgang', () => {
     beforeEach(() => {
-      repository.loadPostfachMailList.mockReturnValue(of(postfachMailList));
-      service._setPostfachMailListLoading = jest.fn();
-      service._setPostfachMailList = jest.fn();
-      vorgangService.getVorgangWithEingang.mockReturnValue(of(createStateResource(createVorgangWithEingangResource())));
+      service._loadPostfachMailList = jest.fn();
       service.postfachMailList$.next(createEmptyStateResource());
       service._refreshVorgangSubscription = jest.fn();
     });
@@ -447,28 +507,64 @@ describe('PostfachService', () => {
       expect(service._refreshVorgangSubscription).toHaveBeenCalled();
     });
 
-    it('should set loading to true', () => {
+    it('should call service loadPostfachMailList', () => {
       service.getPostfachMailListByVorgang();
 
+      expect(service._loadPostfachMailList).toHaveBeenCalled();
+    });
+  });
+
+  describe('loadPostfachMailList', () => {
+    beforeEach(() => {
+      service._setPostfachMailListLoading = jest.fn();
+      service._handleVorgangError = jest.fn();
+      service.loadPostfachMailsByVorgang = jest.fn();
+    });
+
+    it('should set loading to true', () => {
+      service._loadPostfachMailList();
+
       expect(service._setPostfachMailListLoading).toHaveBeenCalled();
     });
 
     it('should call vorgang service', () => {
-      service.getPostfachMailListByVorgang();
+      service._loadPostfachMailList();
 
       expect(vorgangService.getVorgangWithEingang).toHaveBeenCalled();
     });
 
-    it('should call repository', () => {
-      service.getPostfachMailListByVorgang().subscribe();
+    it('should handle vorgang error', () => {
+      service._loadPostfachMailList();
 
-      expect(repository.loadPostfachMailList).toHaveBeenCalled();
+      expect(service._handleVorgangError).toHaveBeenCalledWith(vorgangWithEingangStateResource);
     });
 
-    it('should set loading to false', () => {
-      service.getPostfachMailListByVorgang();
+    it('should call loadPostfachMailsByVorgang', () => {
+      service._loadPostfachMailList();
 
-      expect(service._setPostfachMailList).toHaveBeenCalled();
+      expect(service.loadPostfachMailsByVorgang).toHaveBeenCalledWith(vorgang);
+    });
+  });
+
+  describe('handleVorgangError', () => {
+    beforeEach(() => {
+      service.postfachMailList$.next = jest.fn();
+    });
+
+    it('should set error', () => {
+      const errorState: StateResource<VorgangWithEingangResource> = createErrorStateResource(createProblemDetail());
+
+      service._handleVorgangError(errorState);
+
+      expect(service.postfachMailList$.next).toHaveBeenCalledWith(errorState);
+    });
+
+    it('should not set if there is no error', () => {
+      const errorState: StateResource<VorgangWithEingangResource> = createStateResource(vorgang);
+
+      service._handleVorgangError(errorState);
+
+      expect(service.postfachMailList$.next).not.toHaveBeenCalled();
     });
   });
 
@@ -502,8 +598,6 @@ describe('PostfachService', () => {
   });
 
   describe('isDownloadPdfInProgress', () => {
-    const vorgang: VorgangWithEingangResource = createVorgangWithEingangResource();
-
     it('should call facade to download pdf', (done) => {
       vorgangService.getVorgangWithEingang.mockReturnValue(of(createStateResource(vorgang)));
       postfachFacade.isDownloadPdfInProgress.mockReturnValue(of(true));
@@ -615,7 +709,7 @@ describe('PostfachService', () => {
 
     describe('on setted reload flag', () => {
       beforeEach(() => {
-        service._setPostfachMailOnReload = jest.fn();
+        service.setPostfachMailOnReload = jest.fn();
         service.shouldReload = true;
       });
 
@@ -623,7 +717,7 @@ describe('PostfachService', () => {
         it('should call set kommentar list reload', () => {
           service._handleVorgangChange(vorgangWithEingangStateResource);
 
-          expect(service._setPostfachMailOnReload).toHaveBeenCalled();
+          expect(service.setPostfachMailOnReload).toHaveBeenCalled();
         });
 
         it('and loaded vorgang resource should call set kommentar list reload', () => {
diff --git a/alfa-client/libs/postfach-shared/src/lib/postfach.service.ts b/alfa-client/libs/postfach-shared/src/lib/postfach.service.ts
index a5dbb53f46bae1c4865d7801284fd7cf6eafb406..3abb5760ccdbb06cbd42c744e27f5b63f396d763 100644
--- a/alfa-client/libs/postfach-shared/src/lib/postfach.service.ts
+++ b/alfa-client/libs/postfach-shared/src/lib/postfach.service.ts
@@ -32,9 +32,11 @@ import {
   isPending,
   tapOnCommandSuccessfullyDone,
 } from '@alfa-client/command-shared';
-import { NavigationService } from '@alfa-client/navigation-shared';
+import { NavigationFacade, NavigationService, RouteData } from '@alfa-client/navigation-shared';
 import {
   createEmptyStateResource,
+  createErrorStateResource,
+  createLoadingStateResource,
   createStateResource,
   doIfLoadingRequired,
   isLoaded,
@@ -43,14 +45,14 @@ import {
   StateResource,
 } from '@alfa-client/tech-shared';
 import { SnackBarService } from '@alfa-client/ui';
-import { VorgangResource, VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
+import { getVorgangParam, VorgangResource, VorgangService, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
 import { inject, Injectable } from '@angular/core';
 import { MatDialog } from '@angular/material/dialog';
 import { Params } from '@angular/router';
 import { getUrl, hasLink, Resource } from '@ngxp/rest';
 import { isNil, isNull } from 'lodash-es';
-import { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';
-import { first, map, take, tap } from 'rxjs/operators';
+import { BehaviorSubject, combineLatest, filter, Observable, of, startWith, Subscription } from 'rxjs';
+import { first, map, switchMap, take, tap } from 'rxjs/operators';
 import { PostfachFacade } from './+state/postfach.facade';
 import { PostfachMailLinkRel, PostfachMailListLinkRel } from './postfach.linkrel';
 import { PostfachMessages } from './postfach.message';
@@ -75,6 +77,7 @@ export class PostfachService {
   private readonly dialog = inject(MatDialog);
   private readonly postfachFacade = inject(PostfachFacade);
   private readonly binaryFileService = inject(BinaryFileService);
+  private readonly navigationFacade = inject(NavigationFacade);
 
   postfachMailList$: BehaviorSubject<StateResource<PostfachMailListResource>> = new BehaviorSubject<
     StateResource<PostfachMailListResource>
@@ -87,8 +90,6 @@ export class PostfachService {
   private sendPostfachMailSubscription: Subscription;
   private loadPostfachMailSubscription: Subscription;
   private vorgangSubscription: Subscription;
-  private postfachNachrichtenListSubscription: Subscription;
-
   private vorgangChangeSubscription: Subscription;
 
   shouldReload: boolean = false;
@@ -187,10 +188,7 @@ export class PostfachService {
       this._unsubscribe();
     }
     if (NavigationService.isVorgangDetailPage(params, VorgangService.VORGANG_WITH_EINGANG_URL)) {
-      this._setPostfachMailOnReload();
-    }
-    if (this.navigationService.isPostfachPage()) {
-      this._resetHasNewPostfachNachrichten();
+      this.setPostfachMailOnReload();
     }
   }
 
@@ -213,25 +211,10 @@ export class PostfachService {
     if (isNotUndefined(this.vorgangSubscription)) this.vorgangSubscription.unsubscribe();
   }
 
-  _setPostfachMailOnReload(): void {
+  public setPostfachMailOnReload(): void {
     this.postfachMailList$.next({ ...this.postfachMailList$.value, reload: true });
   }
 
-  _resetHasNewPostfachNachrichten(): void {
-    this.postfachNachrichtenListSubscription = this.getPostfachMailListByVorgang().subscribe((postfachNachrichtenList) => {
-      if (isNotNull(postfachNachrichtenList.resource)) {
-        setTimeout(() => this.postfachNachrichtenListSubscription.unsubscribe(), 0);
-        this._doResetHasNewPostfachNachrichten();
-      }
-    });
-  }
-
-  _doResetHasNewPostfachNachrichten(): void {
-    if (hasLink(this.postfachMailList$.value.resource, PostfachMailListLinkRel.RESET_HAS_NEW_POSTFACH_NACHRICHT)) {
-      this.repository.resetHasNewPostfachNachrichten(this.postfachMailList$.value.resource).pipe(take(1)).subscribe();
-    }
-  }
-
   _pollSendPostfachMailCommand(command: StateResource<CommandResource>): StateResource<CommandResource> {
     if (this.shouldPoll(command)) {
       this._setPollingTrue();
@@ -273,6 +256,57 @@ export class PostfachService {
     return this.commandService.getEffectedResource<PostfachMailListResource>(updatedStateResource.resource);
   }
 
+  public getPostfachNachrichtListAsRead(): Observable<StateResource<PostfachMailListResource>> {
+    return this.getPostfachMailListByVorgang().pipe(
+      switchMap((postfachMailList: StateResource<PostfachMailListResource>) => {
+        return this._resetHasNewPostfachNachrichten(postfachMailList);
+      }),
+      startWith(createLoadingStateResource<PostfachMailListResource>()),
+    );
+  }
+
+  _resetHasNewPostfachNachrichten(
+    postfachMailList: StateResource<PostfachMailListResource>,
+  ): Observable<StateResource<PostfachMailListResource>> {
+    if (
+      isLoaded(postfachMailList) &&
+      hasLink(postfachMailList.resource, PostfachMailListLinkRel.RESET_HAS_NEW_POSTFACH_NACHRICHT)
+    ) {
+      this._loadAfterResetHasNewPostfachNachrichten(postfachMailList.resource);
+      return of(createLoadingStateResource<PostfachMailListResource>());
+    }
+
+    return of(postfachMailList);
+  }
+
+  _loadAfterResetHasNewPostfachNachrichten(postfachMailListResource: PostfachMailListResource): void {
+    this.repository
+      .resetHasNewPostfachNachrichten(postfachMailListResource)
+      .pipe(
+        take(1),
+        tap(() => this._loadPostfachMailList()),
+      )
+      .subscribe();
+  }
+
+  public setPostfachNachrichtListAsUnread() {
+    this.repository
+      .markPostfachAsUnread(this.postfachMailList$.value.resource)
+      .pipe(take(1))
+      .subscribe(() => {
+        this._navigateToCurrentVorgang();
+      });
+  }
+
+  _navigateToCurrentVorgang() {
+    this.navigationFacade
+      .getCurrentRouteData()
+      .pipe(take(1))
+      .subscribe((currentRoute: RouteData) => {
+        this.navigationService.navigateToVorgang(getVorgangParam(currentRoute));
+      });
+  }
+
   public getPostfachMailListByGivenVorgang(vorgang: VorgangResource): Observable<StateResource<PostfachMailListResource>> {
     doIfLoadingRequired(this.postfachMailList$.value, () => {
       this._setPostfachMailListLoading();
@@ -284,17 +318,29 @@ export class PostfachService {
   public getPostfachMailListByVorgang(): Observable<StateResource<PostfachMailListResource>> {
     this._refreshVorgangSubscription();
     doIfLoadingRequired(this.postfachMailList$.value, () => {
-      this._setPostfachMailListLoading();
-      this.vorgangSubscription = this.vorgangService.getVorgangWithEingang().subscribe((vorgangWithEingangStateResource) => {
-        if (vorgangWithEingangStateResource.resource) {
-          this.loadPostfachMailsByVorgang(vorgangWithEingangStateResource.resource);
-          setTimeout(() => this.vorgangSubscription.unsubscribe(), 0);
-        }
-      });
+      this._loadPostfachMailList();
     });
     return this.postfachMailList$.asObservable();
   }
 
+  _loadPostfachMailList(): void {
+    this._setPostfachMailListLoading();
+    this.vorgangService
+      .getVorgangWithEingang()
+      .pipe(
+        tap((state: StateResource<VorgangWithEingangResource>) => this._handleVorgangError(state)),
+        filter(isLoaded),
+        take(1),
+      )
+      .subscribe((vorgangWithEingangStateResource) => {
+        this.loadPostfachMailsByVorgang(vorgangWithEingangStateResource.resource);
+      });
+  }
+
+  _handleVorgangError(state: StateResource<VorgangWithEingangResource>): void {
+    if (state.error) this.postfachMailList$.next(createErrorStateResource(state.error));
+  }
+
   _refreshVorgangSubscription(): void {
     this.vorgangChangeSubscription.unsubscribe();
     this._listenToVorgangChange();
@@ -313,7 +359,7 @@ export class PostfachService {
       this.shouldReload = true;
     }
     if (isLoaded(vorgangWithEingangStateResource) && this.shouldReload) {
-      this._setPostfachMailOnReload();
+      this.setPostfachMailOnReload();
       this.shouldReload = false;
     }
   }
@@ -330,12 +376,15 @@ export class PostfachService {
   }
 
   public loadPostfachMailsByVorgang(vorgang: VorgangResource): void {
-    this.loadPostfachMailSubscription = this.repository.loadPostfachMailList(vorgang).subscribe((postfachMaiList) => {
-      if (!isNull(postfachMaiList)) {
-        this._setPostfachMailList(postfachMaiList);
-        setTimeout(() => this.loadPostfachMailSubscription.unsubscribe(), 0);
-      }
-    });
+    this.loadPostfachMailSubscription = this.repository
+      .loadPostfachMailList(vorgang)
+      .pipe()
+      .subscribe((postfachMaiList) => {
+        if (!isNull(postfachMaiList)) {
+          this._setPostfachMailList(postfachMaiList);
+          setTimeout(() => this.loadPostfachMailSubscription.unsubscribe(), 0);
+        }
+      });
   }
 
   _setPostfachMailList(postfachMailList: PostfachMailListResource): void {
@@ -358,17 +407,21 @@ export class PostfachService {
   }
 
   public getFeatures(): Observable<PostfachFeatures> {
-    return this.getPostfachMailListByVorgang().pipe(
+    return this.selectPostfachMailList().pipe(
       map((listStateResource: StateResource<PostfachMailListResource>) => listStateResource.resource.features),
     );
   }
 
   public getSettings(): Observable<PostfachSettings> {
-    return this.getPostfachMailListByVorgang().pipe(
+    return this.selectPostfachMailList().pipe(
       map((listStateResource: StateResource<PostfachMailListResource>) => listStateResource.resource.settings),
     );
   }
 
+  private selectPostfachMailList(): Observable<StateResource<PostfachMailListResource>> {
+    return this.postfachMailList$.asObservable();
+  }
+
   public clearUploadedFiles(): void {
     this.binaryFileService.clearUploadedFiles(POSTFACH_NACHRICHT_UPLOADED_ATTACHMENTS);
   }
diff --git a/alfa-client/libs/postfach-shared/test/postfach.ts b/alfa-client/libs/postfach-shared/test/postfach.ts
index 831f9b7eeafd5401719b392b56d1a79b2c0cb212..8f5abd0ae423b823545323039f6cda385250ee9d 100644
--- a/alfa-client/libs/postfach-shared/test/postfach.ts
+++ b/alfa-client/libs/postfach-shared/test/postfach.ts
@@ -21,9 +21,9 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { createStateResource } from '@alfa-client/tech-shared';
 import { faker } from '@faker-js/faker';
 import { Resource } from '@ngxp/rest';
+import { createStateResource } from 'libs/tech-shared/src/lib/resource/resource.util';
 import { toResource } from 'libs/tech-shared/test/resource';
 import { times } from 'lodash-es';
 import { PostfachMailListLinkRel } from '../src/lib/postfach.linkrel';
diff --git a/alfa-client/libs/postfach/src/lib/postfach-mail-button-container/postfach-mail-button/postfach-mail-button.component.html b/alfa-client/libs/postfach/src/lib/postfach-mail-button-container/postfach-mail-button/postfach-mail-button.component.html
index f525e2f08ca97387663e4094106905a746a2b00c..6ee0bc07b437a2a9f42839e231344857ea34fd70 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-mail-button-container/postfach-mail-button/postfach-mail-button.component.html
+++ b/alfa-client/libs/postfach/src/lib/postfach-mail-button-container/postfach-mail-button/postfach-mail-button.component.html
@@ -34,7 +34,7 @@
       size="fit"
       (clickEmitter)="openPostfachNachrichtenDialog.emit()"
     >
-      <ods-icon icon name="mailbox" fill="text" />
+      <ods-icon icon name="mail" fill="text" />
     </ods-button>
   }
   @if (!showAsIconButton && text && !toolTip) {
diff --git a/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list-container.component.spec.ts b/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list-container.component.spec.ts
index 62804bcc27411f45fac774d32995f4267b2162f7..f2b47f34a70349440a1b12df07830044472fc724 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list-container.component.spec.ts
+++ b/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list-container.component.spec.ts
@@ -82,7 +82,7 @@ describe('PostfachMailListContainerComponent', () => {
 
   describe('reloadPostfachMailListOnVorgangReload', () => {
     beforeEach(() => {
-      postfachService._setPostfachMailOnReload.mockClear();
+      postfachService.setPostfachMailOnReload.mockClear();
     });
 
     it('should call postfachService', () => {
@@ -93,7 +93,7 @@ describe('PostfachMailListContainerComponent', () => {
 
       component.reloadPostfachMailListOnVorgangReload();
 
-      expect(postfachService._setPostfachMailOnReload).toHaveBeenCalled();
+      expect(postfachService.setPostfachMailOnReload).toHaveBeenCalled();
     });
 
     it('should not call postfachService', () => {
@@ -104,7 +104,7 @@ describe('PostfachMailListContainerComponent', () => {
 
       component.reloadPostfachMailListOnVorgangReload();
 
-      expect(postfachService._setPostfachMailOnReload).not.toHaveBeenCalled();
+      expect(postfachService.setPostfachMailOnReload).not.toHaveBeenCalled();
     });
   });
 });
diff --git a/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list-container.component.ts b/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list-container.component.ts
index 14c858585f1b747ec7175b1d717c13f23e44d547..01ff00262cb79ad94583901f9384514cb24b58e3 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list-container.component.ts
+++ b/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list-container.component.ts
@@ -51,7 +51,7 @@ export class PostfachMailListContainerComponent implements OnChanges {
 
   reloadPostfachMailListOnVorgangReload(): void {
     if (this.vorgangStateResource.reload) {
-      this.postfachService._setPostfachMailOnReload();
+      this.postfachService.setPostfachMailOnReload();
     }
   }
 }
diff --git a/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.html b/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.html
index 44d553b95fc0e784b4d66bcd22287e9700325f8a..7f825d014b00f9a3c132641946a8645f5a2817eb 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.html
+++ b/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.html
@@ -24,43 +24,40 @@
 
 -->
 <div class="nachrichten-header">
-  <h3 class="nachrichten">Nachrichten</h3>
-  <alfa-postfach-mail-pdf-button-container
-    [postfachMailListResource]="postfachMailListStateResource.resource"
-  ></alfa-postfach-mail-pdf-button-container>
-  <ng-container *ngIf="postfachMailListStateResource.resource | hasLink: postfachMailListLinkRel.SEND_POSTFACH_MAIL">
+  <div class="flex gap-2">
+    <h3 class="nachrichten">Nachrichten</h3>
+    <ods-mail-icon [withBadge]="vorgangStateResource.resource.hasNewPostfachNachricht" data-test-id="postfach-mail-list-mail-icon"/>
+  </div>
+
+  <alfa-postfach-mail-pdf-button-container [postfachMailListResource]="postfachMailListStateResource.resource" />
+
+  @if(postfachMailListStateResource.resource | hasLink: postfachMailListLinkRel.SEND_POSTFACH_MAIL){
     <alfa-postfach-mail-button-container
       toolTip="Neue Nachricht erstellen"
       tooltipAriaType="aria-labelledby"
       [vorgang]="vorgangStateResource.resource"
       data-test-id="postfach-mail-button-container-no-label"
-    ></alfa-postfach-mail-button-container>
-  </ng-container>
+    />
+  }
 </div>
 
 <ozgcloud-spinner [stateResource]="postfachMailListStateResource">
-  <alfa-postfach-mail
-    *ngFor="
-      let postfachMail of postfachMailListStateResource.resource | toEmbeddedResources: postfachMailListLinkRel.POSTFACH_MAIL_LIST
-    "
-    class="postfach"
-    [vorgangStateResource]="vorgangStateResource"
-    [postfachMail]="postfachMail"
-    [attr.data-test-id]="(postfachMail.subject | convertForDataTest) + '-item'"
-  >
-  </alfa-postfach-mail>
+  @for (postfachMail of postfachMailListStateResource.resource | toEmbeddedResources: postfachMailListLinkRel.POSTFACH_MAIL_LIST; track $index){
+    <alfa-postfach-mail
+      class="postfach"
+      [vorgangStateResource]="vorgangStateResource"
+      [postfachMail]="postfachMail"
+      [attr.data-test-id]="(postfachMail.subject | convertForDataTest) + '-item'"
+    />
+  }
 </ozgcloud-spinner>
 
-<ng-container
-  *ngIf="postfachMailListStateResource.resource | hasLink: postfachMailListLinkRel.SEND_POSTFACH_MAIL; else noPostfach"
->
+@if(postfachMailListStateResource.resource | hasLink: postfachMailListLinkRel.SEND_POSTFACH_MAIL){
   <alfa-postfach-mail-button-container
     text="Nachricht"
     [vorgang]="vorgangStateResource.resource"
     data-test-id="postfach-mail-button-container"
-  ></alfa-postfach-mail-button-container>
-</ng-container>
-
-<ng-template #noPostfach>
+  />
+} @else {
   <span class="no-postfach-text" data-test-id="no-postfach-text">Dieser Vorgang ist nicht mit einem Postfach verknüpft.</span>
-</ng-template>
+}
\ No newline at end of file
diff --git a/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.spec.ts b/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.spec.ts
index bad2ceb1eaf216b0611dc18a2211c7b33635a9d5..90dae1fb628b03822ecb60f62fcbd237cbe87c9e 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.spec.ts
+++ b/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.spec.ts
@@ -21,7 +21,6 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { PostfachMailListLinkRel } from '@alfa-client/postfach-shared';
 import {
   ConvertForDataTestPipe,
@@ -30,9 +29,11 @@ import {
   ToEmbeddedResourcesPipe,
   createStateResource,
 } from '@alfa-client/tech-shared';
-import { getElementFromFixture, getMockComponent } from '@alfa-client/test-utils';
+import { getElementFromFixture, getElementFromFixtureByType, getMockComponent } from '@alfa-client/test-utils';
 import { ExpansionPanelComponent, SpinnerComponent } from '@alfa-client/ui';
 import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { MailIconComponent } from '@ods/system';
 import { createPostfachMailListResource } from 'libs/postfach-shared/test/postfach';
 import { getDataTestIdOf } from 'libs/tech-shared/test/data-test';
 import { MockComponent } from 'ng-mocks';
@@ -49,9 +50,7 @@ describe('PostfachMailListComponent', () => {
   const postfachMailButton: string = getDataTestIdOf('postfach-mail-button-container');
   const noPostfachText: string = getDataTestIdOf('no-postfach-text');
 
-  const vorgangStateResource: StateResource<VorgangWithEingangResource> = createStateResource(
-    createVorgangWithEingangResource(),
-  );
+  const vorgangStateResource: StateResource<VorgangWithEingangResource> = createStateResource(createVorgangWithEingangResource());
 
   beforeEach(async () => {
     await TestBed.configureTestingModule({
@@ -65,6 +64,7 @@ describe('PostfachMailListComponent', () => {
         MockComponent(SpinnerComponent),
         MockComponent(PostfachMailButtonContainerComponent),
         MockComponent(PostfachMailPdfButtonContainerComponent),
+        MockComponent(MailIconComponent),
       ],
     }).compileComponents();
   });
@@ -105,9 +105,7 @@ describe('PostfachMailListComponent', () => {
 
   describe('postfach does not exists', () => {
     beforeEach(() => {
-      component.postfachMailListStateResource = createStateResource(
-        createPostfachMailListResource(),
-      );
+      component.postfachMailListStateResource = createStateResource(createPostfachMailListResource());
       fixture.detectChanges();
     });
 
@@ -126,12 +124,20 @@ describe('PostfachMailListComponent', () => {
 
   describe('postfachMail component', () => {
     it('should have been called with vorgangStateResource', () => {
-      const postfachMailComponent: PostfachMailComponent = getMockComponent(
-        fixture,
-        PostfachMailComponent,
-      );
+      const postfachMailComponent: PostfachMailComponent = getMockComponent(fixture, PostfachMailComponent);
 
       expect(postfachMailComponent.vorgangStateResource).toBe(vorgangStateResource);
     });
   });
+
+  describe('mail icon', () => {
+    it('should exist', () => {
+      component.vorgangStateResource.resource.hasNewPostfachNachricht = false;
+
+      fixture.detectChanges();
+
+      const mailIcon: MailIconComponent = getElementFromFixtureByType(fixture, MailIconComponent);
+      expect(mailIcon.withBadge).toEqual(false);
+    });
+  });
 });
diff --git a/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.ts b/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.ts
index db1b3add68978493e2e5f260ff89487e7c0e17a5..6304cd5aff53376be02b5d00fe55138cfc2bdae0 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.ts
+++ b/alfa-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail-list.component.ts
@@ -21,10 +21,10 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { Component, Input } from '@angular/core';
 import { PostfachMailListLinkRel, PostfachMailListResource } from '@alfa-client/postfach-shared';
 import { StateResource } from '@alfa-client/tech-shared';
-import { VorgangHeaderLinkRel, VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
+import { VorgangWithEingangResource } from '@alfa-client/vorgang-shared';
+import { Component, Input } from '@angular/core';
 
 @Component({
   selector: 'alfa-postfach-mail-list',
@@ -36,5 +36,4 @@ export class PostfachMailListComponent {
   @Input() vorgangStateResource: StateResource<VorgangWithEingangResource>;
 
   readonly postfachMailListLinkRel = PostfachMailListLinkRel;
-  readonly vorgangHeaderLinkRel = VorgangHeaderLinkRel;
 }
diff --git a/alfa-client/libs/postfach/src/lib/postfach-mail-pdf-button-container/postfach-mail-pdf-button-container.component.ts b/alfa-client/libs/postfach/src/lib/postfach-mail-pdf-button-container/postfach-mail-pdf-button-container.component.ts
index 4a331e57b3392b3d487422157f6ff6b9e9aae3a5..f8624c082e8b229ac790ae52f002fa86cf198f43 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-mail-pdf-button-container/postfach-mail-pdf-button-container.component.ts
+++ b/alfa-client/libs/postfach/src/lib/postfach-mail-pdf-button-container/postfach-mail-pdf-button-container.component.ts
@@ -21,8 +21,8 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
+import { PostfachMailListResource, PostfachService } from '@alfa-client/postfach-shared';
 import { Component, Input, OnInit } from '@angular/core';
-import { PostfachMailResource, PostfachService } from '@alfa-client/postfach-shared';
 import { Observable } from 'rxjs';
 
 @Component({
@@ -31,7 +31,7 @@ import { Observable } from 'rxjs';
   styleUrls: ['./postfach-mail-pdf-button-container.component.scss'],
 })
 export class PostfachMailPdfButtonContainerComponent implements OnInit {
-  @Input() postfachMailListResource: PostfachMailResource;
+  @Input() postfachMailListResource: PostfachMailListResource;
   @Input() showButtonWithLabel: boolean = false;
 
   isDownloadPdfInProgress$: Observable<boolean>;
diff --git a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page-container.component.spec.ts b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page-container.component.spec.ts
index 23bf41d68cf6fa7c41631dd8c338853376659a63..85fc756effd11c86758f97cd19d88e7d527f1ae0 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page-container.component.spec.ts
+++ b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page-container.component.spec.ts
@@ -21,9 +21,9 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { PostfachService } from '@alfa-client/postfach-shared';
 import { mock } from '@alfa-client/test-utils';
+import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { MockComponent } from 'ng-mocks';
 import { PostfachPageContainerComponent } from './postfach-page-container.component';
 import { PostfachPageComponent } from './postfach-page/postfach-page.component';
@@ -60,7 +60,7 @@ describe('PostfachPageContainerComponent', () => {
     it('should call postfach service', () => {
       component.ngOnInit();
 
-      expect(postfachService.getPostfachMailListByVorgang).toHaveBeenCalled();
+      expect(postfachService.getPostfachNachrichtListAsRead).toHaveBeenCalled();
     });
   });
 });
diff --git a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page-container.component.ts b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page-container.component.ts
index 8c7b0a372bc23ad82d10b7dd43d3e01076b90876..5b62696989e5fe48edbb585ef69723422e5508bc 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page-container.component.ts
+++ b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page-container.component.ts
@@ -21,9 +21,9 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { Component, OnInit } from '@angular/core';
 import { ON_PAGE, PostfachMailListResource, PostfachService } from '@alfa-client/postfach-shared';
 import { StateResource } from '@alfa-client/tech-shared';
+import { Component, OnInit } from '@angular/core';
 import { Observable } from 'rxjs';
 
 @Component({
@@ -38,6 +38,6 @@ export class PostfachPageContainerComponent implements OnInit {
   constructor(private postfachService: PostfachService) {}
 
   ngOnInit() {
-    this.postfachMailListStateResource$ = this.postfachService.getPostfachMailListByVorgang();
+    this.postfachMailListStateResource$ = this.postfachService.getPostfachNachrichtListAsRead();
   }
 }
diff --git a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/mail-unread-button/mail-unread-button-link-container.component.html b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/mail-unread-button/mail-unread-button-link-container.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..0f3c1dfebf9d600a18d6cfa18e18cb776989e8be
--- /dev/null
+++ b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/mail-unread-button/mail-unread-button-link-container.component.html
@@ -0,0 +1,26 @@
+@if (postfachMailListResource | hasLink: PostfachMailListLinkRel.SET_HAS_NEW_POSTFACH_NACHRICHT) {
+  @if (showAsIconButton) {
+    <ods-button
+      (clickEmitter)="markMailAsUnread()"
+      [tooltip]="'Nachrichten als ungelesen markieren'"
+      tooltipAriaType="aria-labelledby"
+      variant="ghost"
+      size="fit"
+      dataTestId="mail-unread-icon-button-link"
+      data-test-id="mail-unread-icon-button-link-host"
+    >
+      <ods-icon icon name="mail-unread" fill="text" />
+    </ods-button>
+  } @else {
+    <ods-button
+      (clickEmitter)="markMailAsUnread()"
+      [tooltip]="'Nachrichten als ungelesen markieren'"
+      text="Als ungelesen markieren"
+      variant="outline"
+      dataTestId="mail-unread-button-link"
+      data-test-id="mail-unread-button-link-host"
+    >
+      <ods-icon icon name="mail-unread" />
+    </ods-button>
+  }
+}
diff --git a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/mail-unread-button/mail-unread-button-link-container.component.spec.ts b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/mail-unread-button/mail-unread-button-link-container.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..d1a73a9c136fc608eaaa6e9152820c835fc67e9c
--- /dev/null
+++ b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/mail-unread-button/mail-unread-button-link-container.component.spec.ts
@@ -0,0 +1,142 @@
+import { PostfachMailListLinkRel, PostfachMailListResource, PostfachService } from '@alfa-client/postfach-shared';
+import { HasLinkPipe } from '@alfa-client/tech-shared';
+import {
+  dispatchEventFromFixture,
+  existsAsHtmlElement,
+  mock,
+  Mock,
+  MockEvent,
+  notExistsAsHtmlElement,
+} from '@alfa-client/test-utils';
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { ButtonComponent, IconComponent } from '@ods/system';
+import { MockComponent } from 'ng-mocks';
+import { createPostfachMailListResource } from '../../../../../../postfach-shared/test/postfach';
+import { getDataTestIdOf } from '../../../../../../tech-shared/test/data-test';
+import { MailUnreadButtonLinkContainerComponent } from './mail-unread-button-link-container.component';
+
+describe('MailUnreadButtonLinkContainerComponent', () => {
+  let component: MailUnreadButtonLinkContainerComponent;
+  let fixture: ComponentFixture<MailUnreadButtonLinkContainerComponent>;
+
+  let postfachService: Mock<PostfachService>;
+
+  const postfachMailListResource: PostfachMailListResource = createPostfachMailListResource([
+    PostfachMailListLinkRel.SET_HAS_NEW_POSTFACH_NACHRICHT,
+  ]);
+
+  const button: string = getDataTestIdOf('mail-unread-button-link-host');
+  const iconButton: string = getDataTestIdOf('mail-unread-icon-button-link-host');
+
+  beforeEach(async () => {
+    postfachService = mock(PostfachService);
+
+    await TestBed.configureTestingModule({
+      imports: [MailUnreadButtonLinkContainerComponent, HasLinkPipe],
+      declarations: [MockComponent(ButtonComponent), MockComponent(IconComponent)],
+      providers: [
+        {
+          provide: PostfachService,
+          useValue: postfachService,
+        },
+      ],
+    }).compileComponents();
+
+    fixture = TestBed.createComponent(MailUnreadButtonLinkContainerComponent);
+    component = fixture.componentInstance;
+    component.postfachMailListResource = postfachMailListResource;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+
+  describe('component', () => {
+    describe('mark mail as unread', () => {
+      it('should call set postfach nachrichten as unread', () => {
+        component.markMailAsUnread();
+
+        expect(postfachService.setPostfachNachrichtListAsUnread).toHaveBeenCalled();
+      });
+    });
+  });
+
+  describe('template', () => {
+    it('no button should exist', () => {});
+
+    describe('icon button', () => {
+      it('should exist', () => {
+        component.showAsIconButton = true;
+
+        fixture.detectChanges();
+
+        existsAsHtmlElement(fixture, iconButton);
+      });
+
+      it('should not exist if link does not exist', () => {
+        component.showAsIconButton = true;
+        component.postfachMailListResource = createPostfachMailListResource();
+
+        fixture.detectChanges();
+
+        notExistsAsHtmlElement(fixture, iconButton);
+      });
+
+      it('should not exist if not shown as icon button', () => {
+        component.showAsIconButton = false;
+
+        fixture.detectChanges();
+
+        notExistsAsHtmlElement(fixture, iconButton);
+      });
+
+      it('should call markMailAsUnread on click', () => {
+        component.showAsIconButton = true;
+        component.markMailAsUnread = jest.fn();
+
+        fixture.detectChanges();
+        dispatchEventFromFixture(fixture, iconButton, MockEvent.CLICK);
+
+        expect(component.markMailAsUnread).toHaveBeenCalled();
+      });
+    });
+  });
+
+  describe('button', () => {
+    it('should exist', () => {
+      component.showAsIconButton = false;
+
+      fixture.detectChanges();
+
+      existsAsHtmlElement(fixture, button);
+    });
+
+    it('should not exist if link does not exist', () => {
+      component.showAsIconButton = false;
+      component.postfachMailListResource = createPostfachMailListResource();
+
+      fixture.detectChanges();
+
+      notExistsAsHtmlElement(fixture, button);
+    });
+
+    it('should not exist if shown as icon button', () => {
+      component.showAsIconButton = true;
+
+      fixture.detectChanges();
+
+      notExistsAsHtmlElement(fixture, button);
+    });
+
+    it('should call markMailAsUnread on click', () => {
+      component.showAsIconButton = false;
+      component.markMailAsUnread = jest.fn();
+
+      fixture.detectChanges();
+      dispatchEventFromFixture(fixture, button, MockEvent.CLICK);
+
+      expect(component.markMailAsUnread).toHaveBeenCalled();
+    });
+  });
+});
diff --git a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/mail-unread-button/mail-unread-button-link-container.component.ts b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/mail-unread-button/mail-unread-button-link-container.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..16c39db732329e490e84055fd9bb94d64a06352d
--- /dev/null
+++ b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/mail-unread-button/mail-unread-button-link-container.component.ts
@@ -0,0 +1,27 @@
+import { CommandResource } from '@alfa-client/command-shared';
+import { PostfachMailListLinkRel, PostfachMailListResource, PostfachService } from '@alfa-client/postfach-shared';
+import { createEmptyStateResource, HasLinkPipe, StateResource } from '@alfa-client/tech-shared';
+import { Component, inject, Input } from '@angular/core';
+import { ButtonComponent, IconComponent, TooltipDirective } from '@ods/system';
+import { Observable, of } from 'rxjs';
+
+@Component({
+  selector: 'alfa-mail-unread-button-link-container',
+  standalone: true,
+  imports: [HasLinkPipe, IconComponent, TooltipDirective, ButtonComponent],
+  templateUrl: './mail-unread-button-link-container.component.html',
+})
+export class MailUnreadButtonLinkContainerComponent {
+  private readonly postfachService = inject(PostfachService);
+
+  @Input() postfachMailListResource: PostfachMailListResource;
+  @Input() showAsIconButton: boolean = false;
+
+  commandStateResource$: Observable<StateResource<CommandResource>> = of(createEmptyStateResource<CommandResource>());
+
+  protected readonly PostfachMailListLinkRel = PostfachMailListLinkRel;
+
+  public markMailAsUnread() {
+    this.postfachService.setPostfachNachrichtListAsUnread();
+  }
+}
diff --git a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page-mail-list/postfach-page-mail-list.component.html b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page-mail-list/postfach-page-mail-list.component.html
index 9d74f0c569922238813f128c9def3394b701e647..e6ab2f9717f81043221c63057b214b3f6d175f46 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page-mail-list/postfach-page-mail-list.component.html
+++ b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page-mail-list/postfach-page-mail-list.component.html
@@ -23,20 +23,28 @@
     unter der Lizenz sind dem Lizenztext zu entnehmen.
 
 -->
-<ozgcloud-spinner *ngIf="postfachMailListStateResource">
-  <alfa-postfach-mail
-    *ngFor="
-      let postfachMail of postfachMailListStateResource.resource | toEmbeddedResources: postfachMailListLinkRel.POSTFACH_MAIL_LIST
-    "
-    [attr.data-test-id]="(postfachMail.subject | convertForDataTest) + '-item'"
-    class="postfach w-full lg:w-1/2"
-    [postfachMail]="postfachMail"
-  >
-  </alfa-postfach-mail>
+<ozgcloud-spinner [stateResource]="postfachMailListStateResource">
+  @if (postfachMailListStateResource.resource) {
+    <div data-test-id="postfach-page-mail-list">
+      @for (
+        postfachMail of postfachMailListStateResource.resource | toEmbeddedResources: postfachMailListLinkRel.POSTFACH_MAIL_LIST;
+        track $index
+      ) {
+        <alfa-postfach-mail
+          [attr.data-test-id]="(postfachMail.subject | convertForDataTest) + '-item'"
+          class="postfach w-full lg:w-1/2"
+          [postfachMail]="postfachMail"
+        />
+      }
 
-  <alfa-postfach-mail-pdf-button-container
-    [showButtonWithLabel]="true"
-    [postfachMailListResource]="postfachMailListStateResource.resource"
-  >
-  </alfa-postfach-mail-pdf-button-container>
+      <div class="mb-4 ml-6 mt-4 flex gap-4">
+        <alfa-postfach-mail-pdf-button-container
+          [postfachMailListResource]="postfachMailListStateResource.resource"
+          [showButtonWithLabel]="true"
+        />
+
+        <alfa-mail-unread-button-link-container [postfachMailListResource]="postfachMailListStateResource.resource" />
+      </div>
+    </div>
+  }
 </ozgcloud-spinner>
diff --git a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page-mail-list/postfach-page-mail-list.component.scss b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page-mail-list/postfach-page-mail-list.component.scss
index 0c338513b8477a7bb670284fea1d50c4ddce82fe..1773ac885eb06b92037aaba2a89d961714f25cb3 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page-mail-list/postfach-page-mail-list.component.scss
+++ b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page-mail-list/postfach-page-mail-list.component.scss
@@ -65,8 +65,3 @@
     }
   }
 }
-
-alfa-postfach-mail-pdf-button-container {
-  display: block;
-  margin: 16px 24px;
-}
diff --git a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page-mail-list/postfach-page-mail-list.component.spec.ts b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page-mail-list/postfach-page-mail-list.component.spec.ts
index c5cb09bbcddf5ecc5518db78714d4854b3418a69..fc2527033ffe69e2059f4d5c0ef29c6bd483788c 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page-mail-list/postfach-page-mail-list.component.spec.ts
+++ b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page-mail-list/postfach-page-mail-list.component.spec.ts
@@ -21,22 +21,31 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { PostfachMailListResource } from '@alfa-client/postfach-shared';
 import {
   ConvertForDataTestPipe,
+  createEmptyStateResource,
+  createStateResource,
   HasLinkPipe,
   ToEmbeddedResourcesPipe,
 } from '@alfa-client/tech-shared';
+import { existsAsHtmlElement, notExistsAsHtmlElement } from '@alfa-client/test-utils';
 import { SpinnerComponent } from '@alfa-client/ui';
+import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { MockComponent } from 'ng-mocks';
+import { createPostfachMailListResource } from '../../../../../../postfach-shared/test/postfach';
+import { getDataTestIdOf } from '../../../../../../tech-shared/test/data-test';
 import { PostfachMailComponent } from '../../../postfach-mail-list-container/postfach-mail-list/postfach-mail/postfach-mail.component';
 import { PostfachMailPdfButtonContainerComponent } from '../../../postfach-mail-pdf-button-container/postfach-mail-pdf-button-container.component';
+import { MailUnreadButtonLinkContainerComponent } from '../mail-unread-button/mail-unread-button-link-container.component';
 import { PostfachPageMailListComponent } from './postfach-page-mail-list.component';
 
 describe('PostfachPageMailListComponent', () => {
   let component: PostfachPageMailListComponent;
   let fixture: ComponentFixture<PostfachPageMailListComponent>;
 
+  const mailList: string = getDataTestIdOf('postfach-page-mail-list');
+
   beforeEach(async () => {
     await TestBed.configureTestingModule({
       declarations: [
@@ -47,6 +56,7 @@ describe('PostfachPageMailListComponent', () => {
         MockComponent(PostfachMailComponent),
         MockComponent(SpinnerComponent),
         MockComponent(PostfachMailPdfButtonContainerComponent),
+        MockComponent(MailUnreadButtonLinkContainerComponent),
       ],
     }).compileComponents();
   });
@@ -54,10 +64,29 @@ describe('PostfachPageMailListComponent', () => {
   beforeEach(() => {
     fixture = TestBed.createComponent(PostfachPageMailListComponent);
     component = fixture.componentInstance;
+    component.postfachMailListStateResource = createStateResource<PostfachMailListResource>(createPostfachMailListResource());
     fixture.detectChanges();
   });
 
   it('should create', () => {
     expect(component).toBeTruthy();
   });
+
+  describe('mail list', () => {
+    it('should exist if resource', () => {
+      component.postfachMailListStateResource = createStateResource<PostfachMailListResource>(createPostfachMailListResource());
+
+      fixture.detectChanges();
+
+      existsAsHtmlElement(fixture, mailList);
+    });
+
+    it('should not exist if no resource', () => {
+      component.postfachMailListStateResource = createEmptyStateResource<PostfachMailListResource>();
+
+      fixture.detectChanges();
+
+      notExistsAsHtmlElement(fixture, mailList);
+    });
+  });
 });
diff --git a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page.component.html b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page.component.html
index 57a7c39bdf82f2009c40741ffcf82935202fbcf4..5b3a6128d731837cef2d40158f1e6534f670604d 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page.component.html
+++ b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page.component.html
@@ -24,15 +24,16 @@
 
 -->
 <ozgcloud-subnavigation class="mat-typography mat-app-background">
-  <ozgcloud-back-button linkTo="../" label="zurück zur Detailseite"></ozgcloud-back-button>
+  <ozgcloud-back-button linkTo="../" label="zurück zur Detailseite" />
+  <alfa-mail-unread-button-link-container
+    [postfachMailListResource]="postfachMailListStateResource.resource"
+    showAsIconButton="true"
+  />
 </ozgcloud-subnavigation>
 
 <div class="l-scroll-area--full flex flex-col">
-  <h1 data-test-id="postfach-mail-heading" class="pl-7 pt-4 text-lg font-medium">
-    Nachrichten zum Vorgang
-  </h1>
+  <h1 data-test-id="postfach-mail-heading" class="pl-7 pt-4 text-lg font-medium">Nachrichten zum Vorgang</h1>
   <alfa-postfach-page-mail-list
     [postfachMailListStateResource]="postfachMailListStateResource"
-    data-test-id="postfach-mail-list"
-  ></alfa-postfach-page-mail-list>
+  />
 </div>
diff --git a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page.component.spec.ts b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page.component.spec.ts
index 81e5ddd9f869f75cd2a90e3fa860e75c10f5f113..c2e2ee46a53ffe3510568c15ebf445cb58417778 100644
--- a/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page.component.spec.ts
+++ b/alfa-client/libs/postfach/src/lib/postfach-page-container/postfach-page/postfach-page.component.spec.ts
@@ -21,10 +21,13 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
+import { createStateResource } from '@alfa-client/tech-shared';
 import { BackButtonComponent, SubnavigationComponent } from '@alfa-client/ui';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { MatIcon } from '@angular/material/icon';
 import { MockComponent } from 'ng-mocks';
+import { createPostfachMailListResource } from '../../../../../postfach-shared/test/postfach';
+import { MailUnreadButtonLinkContainerComponent } from './mail-unread-button/mail-unread-button-link-container.component';
 import { PostfachPageMailListComponent } from './postfach-page-mail-list/postfach-page-mail-list.component';
 import { PostfachPageComponent } from './postfach-page.component';
 
@@ -40,6 +43,7 @@ describe('PostfachPageComponent', () => {
         MockComponent(BackButtonComponent),
         MockComponent(SubnavigationComponent),
         MockComponent(PostfachPageMailListComponent),
+        MockComponent(MailUnreadButtonLinkContainerComponent),
       ],
     }).compileComponents();
   });
@@ -47,6 +51,7 @@ describe('PostfachPageComponent', () => {
   beforeEach(() => {
     fixture = TestBed.createComponent(PostfachPageComponent);
     component = fixture.componentInstance;
+    component.postfachMailListStateResource = createStateResource(createPostfachMailListResource());
     fixture.detectChanges();
   });
 
diff --git a/alfa-client/libs/postfach/src/lib/postfach.module.ts b/alfa-client/libs/postfach/src/lib/postfach.module.ts
index a57c2ce81047016799a2d29da42e81c962850bd3..87dc40897d9418e5fff554a59299272580d5e605 100644
--- a/alfa-client/libs/postfach/src/lib/postfach.module.ts
+++ b/alfa-client/libs/postfach/src/lib/postfach.module.ts
@@ -42,7 +42,7 @@ import { NgModule } from '@angular/core';
 import { ReactiveFormsModule } from '@angular/forms';
 import { MatIcon } from '@angular/material/icon';
 import { RouterModule, Routes } from '@angular/router';
-import { ButtonComponent, IconComponent, TooltipDirective } from '@ods/system';
+import { ButtonComponent, IconComponent, MailIconComponent, TooltipDirective } from '@ods/system';
 import { MultiFileUploadComponent } from '../../../binary-file/src/lib/multi-file-upload/multi-file-upload.component';
 import { PostfachMailButtonContainerComponent } from './postfach-mail-button-container/postfach-mail-button-container.component';
 import { PostfachMailButtonComponent } from './postfach-mail-button-container/postfach-mail-button/postfach-mail-button.component';
@@ -60,6 +60,7 @@ import { PostfachMailComponent } from './postfach-mail-list-container/postfach-m
 import { PostfachMailPdfButtonContainerComponent } from './postfach-mail-pdf-button-container/postfach-mail-pdf-button-container.component';
 import { PostfachMailPdfButtonComponent } from './postfach-mail-pdf-button-container/postfach-mail-pdf-button/postfach-mail-pdf-button.component';
 import { PostfachPageContainerComponent } from './postfach-page-container/postfach-page-container.component';
+import { MailUnreadButtonLinkContainerComponent } from './postfach-page-container/postfach-page/mail-unread-button/mail-unread-button-link-container.component';
 import { PostfachPageMailListComponent } from './postfach-page-container/postfach-page/postfach-page-mail-list/postfach-page-mail-list.component';
 import { PostfachPageComponent } from './postfach-page-container/postfach-page/postfach-page.component';
 
@@ -98,6 +99,8 @@ const routes: Routes = [
     IconComponent,
     TooltipDirective,
     MultiFileUploadComponent,
+    MailUnreadButtonLinkContainerComponent,
+    MailIconComponent,
   ],
   declarations: [
     PostfachMailListContainerComponent,
diff --git a/alfa-client/libs/tech-shared/src/index.ts b/alfa-client/libs/tech-shared/src/index.ts
index 9220218eb9d7b86d8887d417285f0dac63a9d9eb..31672f5bbb396227eb2a4aadecc82c5f552de3a3 100644
--- a/alfa-client/libs/tech-shared/src/index.ts
+++ b/alfa-client/libs/tech-shared/src/index.ts
@@ -43,6 +43,7 @@ export * from './lib/pipe/format-date-with-time.pipe';
 export * from './lib/pipe/format-date-without-year-with-time.pipe';
 export * from './lib/pipe/format-to-pretty-date.pipe';
 export * from './lib/pipe/get-url.pipe';
+export * from './lib/pipe/has-any-link.pipe';
 export * from './lib/pipe/has-link.pipe';
 export * from './lib/pipe/not-has-link.pipe';
 export * from './lib/pipe/to-embedded-resource.pipe';
diff --git a/alfa-client/libs/vorgang-shared/src/lib/vorgang-navigation.util.ts b/alfa-client/libs/vorgang-shared/src/lib/vorgang-navigation.util.ts
index 053d9eb1c84a2b396d86b45fbf8908b4790f76a9..31e236a31c13420adf23b3b391b2ef6a3a09e3ab 100644
--- a/alfa-client/libs/vorgang-shared/src/lib/vorgang-navigation.util.ts
+++ b/alfa-client/libs/vorgang-shared/src/lib/vorgang-navigation.util.ts
@@ -231,6 +231,10 @@ function hasVorgangParam(routeData: RouteData): boolean {
   return isNotNull(routeData.queryParameter[VORGANG_WITH_EINGANG_ROUTE_PARAM]);
 }
 
+export function getVorgangParam(routeData: RouteData): string {
+  return routeData.queryParameter[VORGANG_WITH_EINGANG_ROUTE_PARAM];
+}
+
 function hasSegements(routeData: RouteData, numberOfSegements: number): boolean {
   return routeData.urlSegments.length === numberOfSegements;
 }
diff --git a/alfa-client/tsconfig.base.json b/alfa-client/tsconfig.base.json
index 69d2b403c92b19e42c5ed9daab7c4db1216652c0..83e9e7928b74b04912d038d2fb6e347424f754a9 100644
--- a/alfa-client/tsconfig.base.json
+++ b/alfa-client/tsconfig.base.json
@@ -16,6 +16,7 @@
     "skipDefaultLibCheck": true,
     "baseUrl": ".",
     "paths": {
+      "@admin-client/aggregation-mapping": ["libs/admin/aggregation-mapping/src/index.ts"],
       "@admin-client/configuration": ["libs/admin/configuration/src/index.ts"],
       "@admin-client/configuration-shared": ["libs/admin/configuration-shared/src/index.ts"],
       "@admin-client/organisations-einheit": ["libs/admin/organisations-einheit/src/index.ts"],
@@ -25,7 +26,6 @@
       "@admin-client/reporting-shared": ["libs/admin/reporting-shared/src/index.ts"],
       "@admin-client/settings-shared": ["libs/admin/settings-shared/src/index.ts"],
       "@admin-client/shared": ["libs/admin/shared/src/index.ts"],
-      "@admin-client/aggregation-mapping": ["libs/admin/aggregation-mapping/src/index.ts"],
       "@admin-client/user": ["libs/admin/user/src/index.ts"],
       "@admin-client/user-shared": ["libs/admin/user-shared/src/index.ts"],
       "@admin/keycloak-shared": ["libs/admin/keycloak-shared/src/index.ts"],