diff --git a/src/core/DigitalData.MessagingService.Application/Common/Dto/EmailAccounts/EmailAccountDto.cs b/src/core/DigitalData.MessagingService.Application/Common/Dto/EmailAccounts/EmailAccountDto.cs
new file mode 100644
index 0000000..a531a42
--- /dev/null
+++ b/src/core/DigitalData.MessagingService.Application/Common/Dto/EmailAccounts/EmailAccountDto.cs
@@ -0,0 +1,46 @@
+namespace DigitalData.MessagingService.Application.Common.Dto.EmailAccounts;
+
+///
+/// DTO for a single email account configuration.
+///
+public record EmailAccountDto
+{
+ ///
+ /// Logical name to identify this account (e.g. "default", "support").
+ ///
+ public int Id { get; set; }
+
+#if NET
+ public required string Username { get; set; }
+#else
+ public string Username { get; set; } = null!;
+#endif
+
+#if NET
+ public required string SmtpServer { get; set; }
+#else
+ public string SmtpServer { get; set; } = null!;
+#endif
+
+ public int SmtpPort { get; set; }
+
+ public bool SmtpUseSsl { get; set; }
+
+ public bool UseOAuth2 { get; set; }
+
+ ///
+ /// IMAP server hostname (e.g. "imap.example.com").
+ /// Leave empty when this account is send-only.
+ ///
+ public string? ImapServer { get; set; }
+
+ ///
+ /// IMAP server port (993 for SSL, 143 for plain/STARTTLS).
+ ///
+ public int ImapPort { get; set; } = 993;
+
+ ///
+ /// Use SSL/TLS when connecting to the IMAP server.
+ ///
+ public bool ImapUseSsl { get; set; } = true;
+}
\ No newline at end of file
diff --git a/src/core/DigitalData.MessagingService.Application/Common/Dto/EmailAccounts/EmailAccountModificationDto.cs b/src/core/DigitalData.MessagingService.Application/Common/Dto/EmailAccounts/EmailAccountModificationDto.cs
new file mode 100644
index 0000000..6f2baa1
--- /dev/null
+++ b/src/core/DigitalData.MessagingService.Application/Common/Dto/EmailAccounts/EmailAccountModificationDto.cs
@@ -0,0 +1,47 @@
+namespace DigitalData.MessagingService.Application.Common.Dto.EmailAccounts;
+
+///
+/// DTO for a single email account configuration.
+///
+public record EmailAccountModificationDto
+{
+#if NET
+ public required string Username { get; set; }
+#else
+ public string Username { get; set; } = null!;
+#endif
+
+#if NET
+ public required string Password { get; set; }
+#else
+ public string Password { get; set; } = null!;
+#endif
+
+#if NET
+ public required string SmtpServer { get; set; }
+#else
+ public string SmtpServer { get; set; } = null!;
+#endif
+
+ public int SmtpPort { get; set; }
+
+ public bool SmtpUseSsl { get; set; }
+
+ public bool UseOAuth2 { get; set; }
+
+ ///
+ /// IMAP server hostname (e.g. "imap.example.com").
+ /// Leave empty when this account is send-only.
+ ///
+ public string? ImapServer { get; set; }
+
+ ///
+ /// IMAP server port (993 for SSL, 143 for plain/STARTTLS).
+ ///
+ public int ImapPort { get; set; } = 993;
+
+ ///
+ /// Use SSL/TLS when connecting to the IMAP server.
+ ///
+ public bool ImapUseSsl { get; set; } = true;
+}
\ No newline at end of file
diff --git a/src/core/DigitalData.MessagingService.Application/Common/ValueObjects/Modification.cs b/src/core/DigitalData.MessagingService.Application/Common/ValueObjects/Modification.cs
new file mode 100644
index 0000000..df815f6
--- /dev/null
+++ b/src/core/DigitalData.MessagingService.Application/Common/ValueObjects/Modification.cs
@@ -0,0 +1,6 @@
+namespace DigitalData.MessagingService.Application.Common.ValueObjects;
+
+public enum Modification
+{
+ Upsert
+}