diff --git a/vorgang-manager-server/pom.xml b/vorgang-manager-server/pom.xml
index c1c9559cf51e63f7e9c0e53898afed11eaf4c05c..a04e5464ba13ff4739cc6ad67e1d1990a861c8c0 100644
--- a/vorgang-manager-server/pom.xml
+++ b/vorgang-manager-server/pom.xml
@@ -55,7 +55,7 @@
 		<user-manager-interface.version>2.1.0</user-manager-interface.version>
 		<bescheid-manager.version>1.14.1</bescheid-manager.version>
 		<processor-manager.version>0.4.1</processor-manager.version>
-		<nachrichten-manager.version>2.9.0</nachrichten-manager.version>
+		<nachrichten-manager.version>2.10.0-SNAPSHOT</nachrichten-manager.version>
 		<ozgcloud-starter.version>0.10.0</ozgcloud-starter.version>
 		<notification-manager.version>2.8.0</notification-manager.version>
 
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandService.java
index b6360403db1c64d915838671a4a7ab390d540a21..4c7bb459c80b6c4e5a3aa39a88afcad0d0ebf9aa 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandService.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandService.java
@@ -22,13 +22,8 @@ package de.ozgcloud.vorgang.command;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.net.URLConnection;
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.Base64;
-import java.util.Collections;
-import java.util.HashMap;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Optional;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
@@ -37,21 +32,15 @@ import java.util.stream.Stream;
 
 import jakarta.activation.MimetypesFileTypeMap;
 
-import org.apache.commons.lang3.StringUtils;
 import org.apache.http.entity.ContentType;
 import org.springframework.stereotype.Service;
 
 import de.ozgcloud.common.errorhandling.TechnicalException;
 import de.ozgcloud.nachrichten.postfach.AttachmentFile;
 import de.ozgcloud.nachrichten.postfach.PersistPostfachNachrichtService;
-import de.ozgcloud.nachrichten.postfach.PostfachAddress;
 import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
-import de.ozgcloud.nachrichten.postfach.StringBasedIdentifier;
 import de.ozgcloud.vorgang.attached_item.VorgangAttachedItem;
-import de.ozgcloud.vorgang.attached_item.VorgangAttachedItemMapper;
 import de.ozgcloud.vorgang.attached_item.VorgangAttachedItemService;
-import de.ozgcloud.vorgang.callcontext.CallContext;
-import de.ozgcloud.vorgang.callcontext.User;
 import de.ozgcloud.vorgang.files.FileService;
 import de.ozgcloud.vorgang.files.OzgFile;
 import de.ozgcloud.vorgang.files.UploadedFilesReference;
@@ -71,108 +60,12 @@ class PersistPostfachNachrichtByCommandService implements PersistPostfachNachric
 	static final String ITEM_NAME = "PostfachMail";
 	static final String ATTACHMENT_NAME = "PostfachAttachment";
 
-	private final CommandService service;
 	private final VorgangAttachedItemService attachedItemService;
 	private final FileService fileService;
 
 	@Override
 	public void persistNachricht(Optional<String> userId, PostfachNachricht nachricht) {
-		var builder = CreateCommandRequest.builder()
-				.callContext(buildCallContext(userId))
-				.vorgangId(nachricht.getVorgangId());
-
-		var request = StringUtils.isBlank(nachricht.getId()) ? buildPersistCommand(builder, nachricht) : buildUpdateCommand(builder, nachricht);
-
-		service.createCommand(request);
-	}
-
-	CreateCommandRequest buildPersistCommand(CreateCommandRequest.CreateCommandRequestBuilder builder, PostfachNachricht nachricht) {
-		return builder.order(Order.CREATE_ATTACHED_ITEM.name())
-				.relationId(nachricht.getVorgangId())
-				.bodyObject(buildItem(nachricht)).build();
-	}
-
-	CreateCommandRequest buildUpdateCommand(CreateCommandRequest.CreateCommandRequestBuilder builder, PostfachNachricht nachricht) {
-		return builder.order(Order.UPDATE_ATTACHED_ITEM.name())
-				.relationId(nachricht.getId())
-				.bodyObject(buildUpdateItem(nachricht)).build();
-	}
-
-	private CallContext buildCallContext(Optional<String> userId) {
-		var builder = CallContext.builder();
-		userId.map(id -> User.builder().id(id).build()).ifPresent(builder::user);
-
-		return builder.build();
-	}
-
-	private Map<String, Object> buildItem(PostfachNachricht nachricht) {
-		return Map.of(
-				VorgangAttachedItemMapper.PROPERTY_CLIENT, CLIENT,
-				VorgangAttachedItemMapper.PROPERTY_VORGANG_ID, nachricht.getVorgangId(),
-				VorgangAttachedItemMapper.PROPERTY_ITEM_NAME, ITEM_NAME,
-				VorgangAttachedItemMapper.PROPERTY_ITEM, buildNachrichtMap(nachricht));
-
-	}
-
-	private Map<String, Object> buildUpdateItem(PostfachNachricht nachricht) {
-		return Map.of(
-				VorgangAttachedItemMapper.PROPERTY_CLIENT, CLIENT,
-				VorgangAttachedItemMapper.PROPERTY_ITEM, buildNachrichtMap(nachricht));
-
-	}
-
-	Map<String, Object> buildNachrichtMap(PostfachNachricht nachricht) {
-		var result = new HashMap<>(Map.of(
-				PostfachNachricht.FIELD_VORGANG_ID, nachricht.getVorgangId(),
-				PostfachNachricht.FIELD_CREATED_AT, nachricht.getCreatedAt().format(DateTimeFormatter.ISO_DATE_TIME),
-				PostfachNachricht.FIELD_DIRECTION, nachricht.getDirection().name(),
-				PostfachNachricht.FIELD_REPLY_OPTION, nachricht.getReplyOption().name(),
-				PostfachNachricht.FIELD_SUBJECT, nachricht.getSubject(),
-				PostfachNachricht.FIELD_MAIL_BODY, nachricht.getMailBody(),
-				PostfachNachricht.FIELD_ATTACHMENTS, nachricht.getAttachments()));
-
-		putIfNonNull(result, PostfachNachricht.FIELD_POSTFACH_ID, nachricht.getPostfachId());
-		putIfNonNull(result, PostfachNachricht.FIELD_MESSAGE_ID, nachricht.getMessageId());
-		putIfNonNull(result, PostfachNachricht.FIELD_CREATED_BY, nachricht.getCreatedBy());
-		putIfNonNull(result, PostfachNachricht.FIELD_SENT_SUCCESSFUL, nachricht.getSentSuccessful());
-		putIfNonNull(result, PostfachNachricht.FIELD_MESSAGE_CODE, nachricht.getMessageCode());
-		putIfNonNull(result, PostfachNachricht.REFERENCED_NACHRICHT_FIELD, nachricht.getReferencedNachricht());
-		putDateIfNonNull(result, PostfachNachricht.FIELD_SENT_AT, nachricht.getSentAt());
-
-		Optional.ofNullable(nachricht.getPostfachAddress()).map(this::buildPostfachAddressMap)
-				.ifPresent(postfachMaiMap -> result.put(PostfachNachricht.POSTFACH_ADDRESS_FIELD, postfachMaiMap));
-
-		return Collections.unmodifiableMap(result);
-	}
-
-	private Map<String, Object> putIfNonNull(Map<String, Object> mapIn, String key, Object value) {
-		if (Objects.nonNull(value)) {
-			mapIn.put(key, value);
-		}
-		return mapIn;
-	}
-
-	private Map<String, Object> putDateIfNonNull(Map<String, Object> mapIn, String key, Object value) {
-		if (Objects.nonNull(value)) {
-			mapIn.put(key, ((ZonedDateTime) value).format(DateTimeFormatter.ISO_DATE_TIME));
-		}
-		return mapIn;
-	}
-
-	private Map<String, Object> buildPostfachAddressMap(PostfachAddress postfachAddress) {
-		var resultMap = new HashMap<String, Object>();
-		resultMap.put(PostfachAddress.IDENTIFIER_FIELD, buildPostfachAddressIdentifierMap(postfachAddress));
-		resultMap.put(PostfachAddress.VERSION_FIELD, postfachAddress.getVersion());
-		resultMap.put(PostfachAddress.TYPE_FIELD, postfachAddress.getType());
-		Optional.ofNullable(postfachAddress.getServiceKontoType()).ifPresentOrElse(
-				serviceKontoType -> resultMap.put(PostfachAddress.SERVICEKONTO_TYPE_FIELD, serviceKontoType),
-				() -> LOG.warn("ServiceKontoType is null"));
-		return Collections.unmodifiableMap(resultMap);
-	}
-
-	private Map<String, Object> buildPostfachAddressIdentifierMap(PostfachAddress postfachAddress) {
-		var identifier = (StringBasedIdentifier) postfachAddress.getIdentifier();
-		return Map.of(PostfachNachricht.FIELD_POSTFACH_ID, identifier.getPostfachId());
+		throw new UnsupportedOperationException("Not implemented.");
 	}
 
 	@Override
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/bescheid/BescheidITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/bescheid/BescheidITCase.java
index a85658f21505777e07cf1a862bbbcfdbdd83e3a5..deabb903e2e37c99c2e45d41c8d88006e0077764 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/bescheid/BescheidITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/bescheid/BescheidITCase.java
@@ -86,7 +86,6 @@ import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
 		"grpc.client.ozgcloud-command-manager.address=in-process:test",
 		"grpc.client.vorgang-manager.address=in-process:test",
 		"grpc.client.nachrichten-manager.address=in-process:test",
-		"grpc.client.pluto.address=in-process:test",
 		"grpc.client.command-manager.address=in-process:test",
 		"ozgcloud.feature.bescheid.enable-dummy-document-processor=true",
 })
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java
index cf6ab1233d729c31002070698f877d7e3d0c809b..f2e9faf9246aa4f6da71c52133f278a26de1fb15 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/nachrichten/postfach/PostfachMailITCase.java
@@ -71,10 +71,13 @@ import de.ozgcloud.vorgang.files.OzgFile;
 import io.grpc.stub.StreamObserver;
 
 @SpringBootTest(classes = { VorgangManagerServerApplication.class, OsiPostfachProperties.class }, properties = {
+		"grpc.server.inProcessName=test",
+		"grpc.server.port=-1",
 		"ozgcloud.osi.postfach.proxyapi.url=http://localhost/ApiProxy/V1/Message",
 		"ozgcloud.osi.postfach.proxyapi.key=1234",
 		"ozgcloud.osi.postfach.proxyapi.realm=test-realm",
-		"ozgcloud.osi.postfach.notification.mail-from=test@local.host"
+		"ozgcloud.osi.postfach.notification.mail-from=test@local.host",
+		"grpc.client.ozgcloud-command-manager.address=in-process:test",
 })
 @WithMockUser
 @DataITCase
@@ -133,7 +136,7 @@ class PostfachMailITCase {
 
 			callGrpcEndpoint();
 
-			mockServer.verify();
+			await().atMost(60, TimeUnit.SECONDS).untilAsserted(() -> mockServer.verify());
 		}
 
 		@Nested
@@ -144,6 +147,7 @@ class PostfachMailITCase {
 				mockServerSendSuccess();
 
 				callGrpcEndpoint();
+
 				var mails = await().atMost(60, TimeUnit.SECONDS)
 						.until(PostfachMailITCase.this::callGrpcListEndpoint, PostfachMailITCase.this::hasAtLeastOneElement);
 
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/PersistPostfachMailByCommandServiceITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/PersistPostfachMailByCommandServiceITCase.java
index 6f386a9017ddec6bc2e7dd1c452a997caf4e6379..ca948a0825554fb26818b1bd978bfbf0183c878e 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/PersistPostfachMailByCommandServiceITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/PersistPostfachMailByCommandServiceITCase.java
@@ -26,7 +26,6 @@ package de.ozgcloud.vorgang.command;
 import static org.assertj.core.api.Assertions.*;
 
 import java.util.Map;
-import java.util.Optional;
 
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
@@ -36,12 +35,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.MongoOperations;
 import org.springframework.security.test.context.support.WithMockUser;
 
-import de.ozgcloud.command.Command;
 import de.ozgcloud.common.test.DataITCase;
-import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory;
 import de.ozgcloud.vorgang.attached_item.VorgangAttachedItem;
 import de.ozgcloud.vorgang.attached_item.VorgangAttachedItemTestFactory;
-import de.ozgcloud.vorgang.callcontext.UserTestFactory;
 import de.ozgcloud.vorgang.vorgang.Vorgang;
 import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
 
@@ -63,25 +59,6 @@ class PersistPostfachMailByCommandServiceITCase {
 		persistedVorgang = mongoOperations.save(VorgangTestFactory.createWithOrganisationEinheitId("73").toBuilder().id(null).version(0).build());
 	}
 
-	@DisplayName("persist mail")
-	@Nested
-	class TestPersistMail {
-
-		@BeforeEach
-		void initDatabase() {
-			mongoOperations.dropCollection(Command.COLLECTION_NAME);
-		}
-
-		@Test
-		void shouldCreateCommand() {
-			service.persistNachricht(Optional.of(UserTestFactory.ID),
-					PostfachNachrichtTestFactory.createBuilder().vorgangId(persistedVorgang.getId()).build());
-
-			var commands = mongoOperations.findAll(Command.class);
-			assertThat(commands).hasSize(1);
-		}
-	}
-
 	@DisplayName("with existing postfach nachricht")
 	@Nested
 	class TestWithExistingPostfachNachricht {
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandServiceTest.java
index 3384f06ff55b5146b18eed76d584e7dc8ae078d2..7075a16dbee0496c3b2663dc8111fe3ef1300098 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandServiceTest.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/command/PersistPostfachNachrichtByCommandServiceTest.java
@@ -24,7 +24,6 @@
 package de.ozgcloud.vorgang.command;
 
 import static org.assertj.core.api.Assertions.*;
-import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
@@ -49,10 +48,8 @@ import de.ozgcloud.nachrichten.postfach.PostfachAddressTestFactory;
 import de.ozgcloud.nachrichten.postfach.PostfachNachrichtTestFactory;
 import de.ozgcloud.nachrichten.postfach.osi.MessageAttachmentTestFactory;
 import de.ozgcloud.nachrichten.postfach.osi.MessageTestFactory;
-import de.ozgcloud.vorgang.attached_item.VorgangAttachedItemMapper;
 import de.ozgcloud.vorgang.attached_item.VorgangAttachedItemService;
 import de.ozgcloud.vorgang.attached_item.VorgangAttachedItemTestFactory;
-import de.ozgcloud.vorgang.callcontext.UserTestFactory;
 import de.ozgcloud.vorgang.files.FileId;
 import de.ozgcloud.vorgang.files.FileService;
 import de.ozgcloud.vorgang.files.OzgFile;
@@ -64,119 +61,21 @@ class PersistPostfachNachrichtByCommandServiceTest {
 	@InjectMocks
 	private PersistPostfachNachrichtByCommandService service;
 	@Mock
-	private CommandService commandService;
-	@Mock
 	private VorgangAttachedItemService attachedItemService;
 	@Mock
 	private FileService fileService;
 
-	@DisplayName("Persist mail")
+	@DisplayName("Persist nachricht")
 	@Nested
-	class TestPersistMail {
-
-		@Captor
-		private ArgumentCaptor<CreateCommandRequest> requestCaptor;
-
-		@Test
-		void shouldCallCommandService() {
-			callService();
-
-			verify(commandService).createCommand(notNull());
-		}
-
-		@Test
-		void shouldContainVorgangId() {
-			var request = callService();
-
-			assertThat(request.getVorgangId()).isEqualTo(MessageTestFactory.VORGANG_ID);
-		}
-
-		@Test
-		void shouldContainRelationInformations() {
-			var request = callService();
-
-			assertThat(request.getRelationId()).isEqualTo(MessageTestFactory.VORGANG_ID);
-			assertThat(request.getRelationVersion()).isNull();
-		}
+	class TestPersistNachricht {
 
 		@Test
-		void shouldHaveOrder() {
-			var request = callService();
-
-			assertThat(request.getOrder()).isEqualTo(Order.CREATE_ATTACHED_ITEM.name());
-		}
-
-		@Test
-		void shouldHaveCallContext() {
-			var request = callService();
-
-			assertThat(request.getCallContext()).isNotNull();
-			assertThat(request.getCallContext().getUser().getId()).isEqualTo(UserTestFactory.ID);
-		}
-
-		@Test
-		void shouldHaveVorgangAttachedItem() {
-			var request = callService();
-
-			assertThat(request.getBodyObject())
-					.containsEntry(VorgangAttachedItemMapper.PROPERTY_VORGANG_ID, MessageTestFactory.VORGANG_ID)
-					.containsEntry(VorgangAttachedItemMapper.PROPERTY_CLIENT, "OzgCloud_NachrichtenManager")
-					.containsEntry(VorgangAttachedItemMapper.PROPERTY_ITEM_NAME, "PostfachMail")
-					.containsKey(VorgangAttachedItemMapper.PROPERTY_ITEM);
-		}
-
-		@Test
-		void shouldNotAddUser() {
-			service.persistNachricht(Optional.empty(), PostfachNachrichtTestFactory.create());
-			verify(commandService).createCommand(requestCaptor.capture());
-
-			assertThat(requestCaptor.getValue().getCallContext().getUser()).isNull();
-		}
-
-		private CreateCommandRequest callService() {
-			service.persistNachricht(Optional.of(UserTestFactory.ID), PostfachNachrichtTestFactory.createBuilder().id(null).build());
-			verify(commandService).createCommand(requestCaptor.capture());
-
-			return requestCaptor.getValue();
-		}
-
-		@DisplayName("build mail map")
-		@Nested
-		class TestBuildMailMap {
-
-			@Test
-			void shouldContainAllFieldsIgnoringId() {
-				var map = service.buildNachrichtMap(PostfachNachrichtTestFactory.createBuilder().id(null).build());
-
-				var mapWithoutId = PostfachNachrichtTestFactory.asMap();
-				mapWithoutId.remove("id");
-
-				assertThat(map).containsAllEntriesOf(mapWithoutId);
-			}
-
-			@Test
-			void shouldIgnoreEmptyMessageId() {
-				assertDoesNotThrow(() -> service.buildNachrichtMap(PostfachNachrichtTestFactory.createBuilder().messageId(null).build()));
-			}
-
-			@Test
-			void shouldIgnoreEmptyCreatedBy() {
-				assertDoesNotThrow(() -> service.buildNachrichtMap(PostfachNachrichtTestFactory.createBuilder().createdBy(null).build()));
-			}
-
-			@Test
-			void shouldHandleNullAsPostfachId() {
-				var postfachMail = PostfachNachrichtTestFactory.createBuilder().postfachId(null).build();
-
-				assertDoesNotThrow(() -> service.buildNachrichtMap(postfachMail));
-			}
-
-			@Test
-			void shouldProceedWithEmptyPostfachAddress() {
-				var postfachMail = PostfachNachrichtTestFactory.createBuilder().postfachAddress(null).build();
+		void shouldThrowException() {
+			var postfachNachricht = PostfachNachrichtTestFactory.create();
+			var userId = Optional.<String>empty();
 
-				assertDoesNotThrow(() -> service.buildNachrichtMap(postfachMail));
-			}
+			assertThatThrownBy(() -> service.persistNachricht(userId, postfachNachricht))
+					.isInstanceOf(UnsupportedOperationException.class);
 		}
 	}
 
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceFindQueryITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceFindQueryITCase.java
index e5fcd28b7fe4eff5bbd198103ab8a3a676f9faa7..62a1e5ff733572ad745d2b05b0990a36a9292e25 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceFindQueryITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceFindQueryITCase.java
@@ -37,8 +37,6 @@ class GrpcVorgangServiceFindQueryITCase {
 
 	private static final String VORGAENGE_WITH_UNGELESENE_NACHRICHTEN_PATH = "ClientAttribute.OzgCloud_NachrichtenManager.hasNewPostfachNachricht";
 
-	@Autowired
-	private VorgangHeaderRepository repository;
 	@Autowired
 	private MongoOperations mongoOperations;
 
@@ -72,7 +70,8 @@ class GrpcVorgangServiceFindQueryITCase {
 				GrpcQuery.newBuilder()
 						.addExpressions(GrpcVorgangQueryExpression.newBuilder()
 								.setOperator(GrpcQueryOperator.EXISTS)
-								.setPath("ClientAttribute.%s.nextWiedervorlageFrist".formatted(CriteriaUtil.DEFAULT_CLIENT)))).build();
+								.setPath("ClientAttribute.%s.nextWiedervorlageFrist".formatted(CriteriaUtil.DEFAULT_CLIENT))))
+				.build();
 
 		var result = vorgangServiceStub.findVorgang(request);
 
@@ -108,8 +107,7 @@ class GrpcVorgangServiceFindQueryITCase {
 						.addExpressions(GrpcVorgangQueryExpression.newBuilder()
 								.setOperator(GrpcQueryOperator.LESS_THEN_OR_EQUAL_TO)
 								.setPath("Vorgang." + Vorgang.MONGODB_FIELDNAME_CREATED_AT)
-								.setOperandStringValue(VorgangTestFactory.CREATED_AT.toString()))
-				)
+								.setOperandStringValue(VorgangTestFactory.CREATED_AT.toString())))
 				.build();
 
 		var result = vorgangServiceStub.findVorgang(request);