Updated `EmailAccountDto` to use `required` properties for .NET 7+ compatibility, removing the `PasswordEncrypted` property and simplifying password handling. Removed `IEncryptionService` dependency from `LimilabsEmailService` and `LimilabsImapEmailService`. Updated `ConnectAndAuthenticateSmtpAsync` and `OpenAsync` methods to remove password decryption logic. Introduced `CancellationToken` support in `LimilabsImapEmailService` methods to improve cancellation handling for IMAP operations. Added `Entities\` folder reference in `DigitalData.MessagingService.Domain.csproj`.
52 lines
1.3 KiB
C#
52 lines
1.3 KiB
C#
namespace DigitalData.MessagingService.Abstraction;
|
|
|
|
/// <summary>
|
|
/// DTO for a single email account configuration.
|
|
/// </summary>
|
|
public class EmailAccountDto
|
|
{
|
|
/// <summary>
|
|
/// Logical name to identify this account (e.g. "default", "support").
|
|
/// </summary>
|
|
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 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; }
|
|
|
|
/// <summary>
|
|
/// IMAP server hostname (e.g. "imap.example.com").
|
|
/// Leave empty when this account is send-only.
|
|
/// </summary>
|
|
public string? ImapServer { get; set; }
|
|
|
|
/// <summary>
|
|
/// IMAP server port (993 for SSL, 143 for plain/STARTTLS).
|
|
/// </summary>
|
|
public int ImapPort { get; set; } = 993;
|
|
|
|
/// <summary>
|
|
/// Use SSL/TLS when connecting to the IMAP server.
|
|
/// </summary>
|
|
public bool ImapUseSsl { get; set; } = true;
|
|
} |