初步完成邮件功能

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,89 @@
using DMS.Application.DTOs;
using DMS.Application.Interfaces;
using DMS.Core.Interfaces.Repositories;
using DMS.Core.Interfaces.Services;
using DMS.Core.Models;
using Microsoft.Extensions.DependencyInjection;
namespace DMS.WPF.Services
{
/// <summary>
/// 邮件功能测试服务
/// </summary>
public class EmailFunctionalityTestService
{
private readonly IEmailAppService _emailAppService;
private readonly IEmailAccountRepository _emailAccountRepository;
private readonly IEmailService _emailService;
public EmailFunctionalityTestService(
IEmailAppService emailAppService,
IEmailAccountRepository emailAccountRepository,
IEmailService emailService)
{
_emailAppService = emailAppService;
_emailAccountRepository = emailAccountRepository;
_emailService = emailService;
}
/// <summary>
/// 运行邮件功能测试
/// </summary>
public async Task RunTestAsync()
{
try
{
// 1. 创建测试邮件账户
var createRequest = new CreateEmailAccountRequest
{
Name = "测试邮件账户",
EmailAddress = "test@example.com",
SmtpServer = "smtp.example.com",
SmtpPort = 587,
EnableSsl = true,
Username = "test@example.com",
Password = "password",
ImapServer = "imap.example.com",
ImapPort = 993,
IsDefault = true,
IsActive = true
};
var createdAccount = await _emailAppService.CreateEmailAccountAsync(createRequest);
Console.WriteLine($"创建邮件账户成功ID: {createdAccount.Id}");
// 2. 获取所有邮件账户
var accounts = await _emailAppService.GetAllEmailAccountsAsync();
Console.WriteLine($"获取到 {accounts.Count} 个邮件账户");
// 3. 测试连接(这会失败,因为我们使用的是假的服务器地址)
var connectionResult = await _emailAppService.TestEmailAccountAsync(createdAccount.Id);
Console.WriteLine($"邮件账户连接测试结果: {connectionResult}");
// 4. 创建测试邮件模板
var templateDto = new EmailTemplateDto
{
Name = "测试模板",
Code = "TEST_TEMPLATE",
Subject = "测试邮件主题",
Body = "<h1>测试邮件内容</h1><p>这是一封测试邮件。</p>",
IsHtml = true,
IsActive = true
};
var createdTemplate = await _emailAppService.CreateEmailTemplateAsync(templateDto);
Console.WriteLine($"创建邮件模板成功ID: {createdTemplate.Id}");
// 5. 获取所有邮件模板
var templates = await _emailAppService.GetAllEmailTemplatesAsync();
Console.WriteLine($"获取到 {templates.Count} 个邮件模板");
Console.WriteLine("邮件功能测试完成!");
}
catch (Exception ex)
{
Console.WriteLine($"邮件功能测试过程中发生错误: {ex.Message}");
}
}
}
}