//--------------------------------------------------------------------
// 此代码由T4模板自动生成 byzhouhang 20210918
// 生成时间 2022-02-15 13:11:20
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
using IRaCIS.Core.Application.Helper;
using MailKit;
using MailKit.Net.Imap;
using MailKit.Search;
using MailKit.Security;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using MimeKit;
using System.Text.RegularExpressions;
namespace IRaCIS.Core.Application.Contracts
{
///
/// 系统邮件配置表
///
[ApiExplorerSettings(GroupName = "Common")]
public class EmailNoticeConfigService(IRepository _emailNoticeConfigrepository,
IRepository _emailNoticeUserTypeRepository,
IRepository _trialRepository,
IOptionsMonitor systemEmailConfig,
IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService, IEmailNoticeConfigService
{
private readonly SystemEmailSendConfig _systemEmailConfig = systemEmailConfig.CurrentValue;
///
/// 根据项目邮件配置手动发送邮件
///
[HttpPost]
public async Task ManualSendEmail(ManualSendEmailCommand inDto)
{
var trial = await _trialRepository.Where(t => t.Id == inDto.TrialId).FirstNotNullAsync();
var messageToSend = new MimeMessage
{
Subject = inDto.Subject
};
messageToSend.From.Add(new MailboxAddress(trial.EmailFromName, trial.EmailFromEmail));
foreach (var recipient in inDto.ToEmailList.Where(t => !string.IsNullOrWhiteSpace(t.EmailAddress)))
{
messageToSend.To.Add(new MailboxAddress(recipient.Name, recipient.EmailAddress));
}
foreach (var recipient in inDto.CcEmailList.Where(t => !string.IsNullOrWhiteSpace(t.EmailAddress)))
{
messageToSend.Cc.Add(new MailboxAddress(recipient.Name, recipient.EmailAddress));
}
messageToSend.Body = new BodyBuilder
{
HtmlBody = inDto.Content
}.ToMessageBody();
await SendEmailHelper.SendTrialEmailAsync(messageToSend, trial);
return ResponseOutput.Ok();
}
///
/// 获取邮件列表
///
///
[HttpPost]
public async Task