初步完成邮件功能

This commit is contained in:
2025-09-13 19:08:43 +08:00
parent 15e2caed22
commit 42aaf9c01b
45 changed files with 3145 additions and 12 deletions

View File

@@ -0,0 +1,63 @@
namespace DMS.Application.DTOs
{
/// <summary>
/// 创建邮件账户请求DTO
/// </summary>
public class CreateEmailAccountRequest
{
/// <summary>
/// 账户名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 邮箱地址
/// </summary>
public string EmailAddress { get; set; }
/// <summary>
/// SMTP服务器地址
/// </summary>
public string SmtpServer { get; set; }
/// <summary>
/// SMTP端口号
/// </summary>
public int SmtpPort { get; set; } = 587;
/// <summary>
/// 是否启用SSL
/// </summary>
public bool EnableSsl { get; set; } = true;
/// <summary>
/// 用户名
/// </summary>
public string Username { get; set; }
/// <summary>
/// 密码
/// </summary>
public string Password { get; set; }
/// <summary>
/// IMAP服务器地址
/// </summary>
public string? ImapServer { get; set; }
/// <summary>
/// IMAP端口号
/// </summary>
public int ImapPort { get; set; } = 993;
/// <summary>
/// 是否为默认账户
/// </summary>
public bool IsDefault { get; set; }
/// <summary>
/// 是否启用
/// </summary>
public bool IsActive { get; set; } = true;
}
}

View File

@@ -0,0 +1,73 @@
namespace DMS.Application.DTOs
{
/// <summary>
/// 邮件账户DTO
/// </summary>
public class EmailAccountDto
{
/// <summary>
/// 账户ID
/// </summary>
public int Id { get; set; }
/// <summary>
/// 账户名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 邮箱地址
/// </summary>
public string EmailAddress { get; set; }
/// <summary>
/// SMTP服务器地址
/// </summary>
public string SmtpServer { get; set; }
/// <summary>
/// SMTP端口号
/// </summary>
public int SmtpPort { get; set; }
/// <summary>
/// 是否启用SSL
/// </summary>
public bool EnableSsl { get; set; }
/// <summary>
/// 用户名
/// </summary>
public string Username { get; set; }
/// <summary>
/// IMAP服务器地址
/// </summary>
public string? ImapServer { get; set; }
/// <summary>
/// IMAP端口号
/// </summary>
public int ImapPort { get; set; }
/// <summary>
/// 是否为默认账户
/// </summary>
public bool IsDefault { get; set; }
/// <summary>
/// 是否启用
/// </summary>
public bool IsActive { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedAt { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdatedAt { get; set; }
}
}

View File

@@ -0,0 +1,38 @@
namespace DMS.Application.DTOs
{
/// <summary>
/// 邮件日志DTO
/// </summary>
public class EmailLogDto
{
/// <summary>
/// 日志ID
/// </summary>
public int Id { get; set; }
/// <summary>
/// 关联的邮件ID
/// </summary>
public int EmailMessageId { get; set; }
/// <summary>
/// 日志级别
/// </summary>
public string Level { get; set; }
/// <summary>
/// 日志消息
/// </summary>
public string Message { get; set; }
/// <summary>
/// 异常详情
/// </summary>
public string? Exception { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedAt { get; set; }
}
}

View File

@@ -0,0 +1,73 @@
namespace DMS.Application.DTOs
{
/// <summary>
/// 邮件消息DTO
/// </summary>
public class EmailMessageDto
{
/// <summary>
/// 邮件ID
/// </summary>
public int Id { get; set; }
/// <summary>
/// 关联的邮件账户ID
/// </summary>
public int EmailAccountId { get; set; }
/// <summary>
/// 发件人邮箱地址
/// </summary>
public string From { get; set; }
/// <summary>
/// 收件人邮箱地址(多个用分号分隔)
/// </summary>
public string To { get; set; }
/// <summary>
/// 抄送邮箱地址(多个用分号分隔)
/// </summary>
public string? Cc { get; set; }
/// <summary>
/// 密送邮箱地址(多个用分号分隔)
/// </summary>
public string? Bcc { get; set; }
/// <summary>
/// 邮件主题
/// </summary>
public string Subject { get; set; }
/// <summary>
/// 邮件正文
/// </summary>
public string Body { get; set; }
/// <summary>
/// 是否为HTML格式
/// </summary>
public bool IsHtml { get; set; }
/// <summary>
/// 邮件发送状态
/// </summary>
public string Status { get; set; }
/// <summary>
/// 发送时间
/// </summary>
public DateTime? SentAt { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedAt { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdatedAt { get; set; }
}
}

View File

@@ -0,0 +1,53 @@
namespace DMS.Application.DTOs
{
/// <summary>
/// 邮件模板DTO
/// </summary>
public class EmailTemplateDto
{
/// <summary>
/// 模板ID
/// </summary>
public int Id { get; set; }
/// <summary>
/// 模板名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 模板代码(唯一标识)
/// </summary>
public string Code { get; set; }
/// <summary>
/// 模板主题
/// </summary>
public string Subject { get; set; }
/// <summary>
/// 模板内容
/// </summary>
public string Body { get; set; }
/// <summary>
/// 是否为HTML格式
/// </summary>
public bool IsHtml { get; set; }
/// <summary>
/// 是否启用
/// </summary>
public bool IsActive { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedAt { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdatedAt { get; set; }
}
}

View File

@@ -0,0 +1,43 @@
namespace DMS.Application.DTOs
{
/// <summary>
/// 发送邮件请求DTO
/// </summary>
public class SendEmailRequest
{
/// <summary>
/// 关联的邮件账户ID
/// </summary>
public int EmailAccountId { get; set; }
/// <summary>
/// 收件人邮箱地址(多个用分号分隔)
/// </summary>
public string To { get; set; }
/// <summary>
/// 抄送邮箱地址(多个用分号分隔)
/// </summary>
public string? Cc { get; set; }
/// <summary>
/// 密送邮箱地址(多个用分号分隔)
/// </summary>
public string? Bcc { get; set; }
/// <summary>
/// 邮件主题
/// </summary>
public string Subject { get; set; }
/// <summary>
/// 邮件正文
/// </summary>
public string Body { get; set; }
/// <summary>
/// 是否为HTML格式
/// </summary>
public bool IsHtml { get; set; } = true;
}
}