修改邮件配置
parent
bee9ea752f
commit
1c6d03af0e
|
@ -108,6 +108,9 @@
|
|||
<Content Update="wwwroot\EmailTemplate\AdminResetUser.html">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Update="wwwroot\EmailTemplate\EmailConfigTest.html">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Update="wwwroot\EmailTemplate\TrialSiteSurveyReject.html">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang='en'>
|
||||
<head>
|
||||
<meta charset='UTF-8'>
|
||||
<title>Title</title>
|
||||
</head>
|
||||
<body style='font-family: 微软雅黑;padding: 0;margin: 0;'>
|
||||
<div style='padding-left: 40px;background: #f6f6f6'>
|
||||
<div style='padding-top: 20px;'>
|
||||
<div style='line-height: 40px;font-size: 18px'>
|
||||
您好:
|
||||
</div>
|
||||
<div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
|
||||
感谢您使用展影云平台。
|
||||
</div>
|
||||
<div style='line-height: 40px;padding-left: 40px;margin-bottom: 10px;'>
|
||||
{0}。
|
||||
</div>
|
||||
|
||||
<div style='line-height: 24px;font-size: 14px;color:#333;margin-top: 20px;padding-bottom: 40px;'>
|
||||
<div>祝您顺利!/Best Regards</div>
|
||||
<div style="font-size: 14px;">上海展影医疗科技有限公司</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -75,6 +75,10 @@ namespace IRaCIS.Core.Application.ViewModel
|
|||
|
||||
public string AuthorizationCode { get; set; } = string.Empty;
|
||||
|
||||
public string SMTPServerAddress { get; set; } = string.Empty;
|
||||
|
||||
public int SMTPServerPort { get; set; }
|
||||
|
||||
public CriterionType CriterionTypeEnum { get; set; }
|
||||
|
||||
public string FromName { get; set; } = string.Empty;
|
||||
|
|
|
@ -93,13 +93,17 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
|
||||
VisitEarliestScanDate = t.SourceSubjectVisit.EarliestScanDate,
|
||||
VisitName = t.SourceSubjectVisit.VisitName,
|
||||
t.SourceSubjectVisit.IsFinalVisit,
|
||||
t.SourceSubjectVisit.PDState,
|
||||
t.SourceSubjectVisit.IsEnrollmentConfirm,
|
||||
VisitName =(string?) t.SourceSubjectVisit.VisitName,
|
||||
IsFinalVisit=(bool?)t.SourceSubjectVisit.IsFinalVisit,
|
||||
PDState =(PDStateEnum?) t.SourceSubjectVisit.PDState,
|
||||
IsEnrollmentConfirm= (bool?) t.SourceSubjectVisit.IsEnrollmentConfirm,
|
||||
IsBaseline =(bool?) t.SourceSubjectVisit.IsBaseLine,
|
||||
|
||||
|
||||
ModuleEarliestScanDate = t.ReadModule.SubjectVisit.EarliestScanDate,
|
||||
ModuleVisitName = t.ReadModule.SubjectVisit.VisitName,
|
||||
ModuleVisitName = (string?) t.ReadModule.SubjectVisit.VisitName,
|
||||
MoudulePDState = (PDStateEnum?)t.ReadModule.SubjectVisit.PDState,
|
||||
|
||||
t.SourceSubjectVisitId,
|
||||
t.SouceReadModuleId,
|
||||
t.SubjectId,
|
||||
|
@ -114,9 +118,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
//有序与否
|
||||
t.TrialReadingCriterion.IsReadingTaskViewInOrder,
|
||||
|
||||
MoudulePDState = t.ReadModule.SubjectVisit.PDState,
|
||||
t.TrialId,
|
||||
IsBaseline = t.SourceSubjectVisit.IsBaseLine,
|
||||
|
||||
|
||||
|
||||
|
@ -133,7 +135,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
if (taskInfo.ReadingTaskState == ReadingTaskState.HaveSigned)
|
||||
{
|
||||
//入组确认场景
|
||||
if (taskInfo.IsEnrollmentConfirm && taskInfo.IsEnrollementQualificationConfirm && taskInfo.IsBaseline)
|
||||
if (taskInfo.IsEnrollmentConfirm==true && taskInfo.IsEnrollementQualificationConfirm==true && taskInfo.IsBaseline==true)
|
||||
{
|
||||
businessScenarioEnum = CommonDocumentBusinessScenario.EnrollConfirmed;
|
||||
|
||||
|
@ -163,9 +165,11 @@ namespace IRaCIS.Core.Application.Service
|
|||
.Include(t => t.TrialEmailNoticeUserList).FirstOrDefaultAsync();
|
||||
|
||||
|
||||
if (emailConfig == null)
|
||||
if (emailConfig == null || emailConfig.IsAutoSend==false)
|
||||
{
|
||||
throw new BusinessValidationFailedException("找不到该项目标准场景下邮件的配置");
|
||||
//throw new BusinessValidationFailedException("找不到该项目标准场景下邮件的配置");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -190,6 +194,12 @@ namespace IRaCIS.Core.Application.Service
|
|||
{
|
||||
|
||||
sendEmailConfig.FromEmailAddress = new MimeKit.MailboxAddress(emailConfig.FromName, emailConfig.FromEmail);
|
||||
sendEmailConfig.AuthorizationCode = emailConfig.AuthorizationCode;
|
||||
sendEmailConfig.UserName = emailConfig.FromEmail;
|
||||
|
||||
sendEmailConfig.Host = emailConfig.SMTPServerAddress;
|
||||
sendEmailConfig.Port = emailConfig.SMTPServerPort;
|
||||
|
||||
|
||||
//测试
|
||||
sendEmailConfig.ToMailAddressList.Add(new MimeKit.MailboxAddress("ddd", "872297557@qq.com"));
|
||||
|
@ -197,7 +207,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
}
|
||||
else
|
||||
{
|
||||
throw new BusinessValidationFailedException("发件邮箱有误,请核实");
|
||||
throw new BusinessValidationFailedException("项目发件邮箱配置有误,请核实");
|
||||
}
|
||||
|
||||
foreach (var item in toUserList)
|
||||
|
@ -510,7 +520,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
["ResearchProgramNo"] = taskInfo.ResearchProgramNo,
|
||||
["TrialSiteCode"] = taskInfo.TrialSiteCode,
|
||||
["SubjectCode"] = taskInfo.SubjectCode,
|
||||
["VisitName"] = taskInfo.VisitName,
|
||||
["VisitName"] = taskInfo.SourceSubjectVisitId != null ? taskInfo.VisitName:taskInfo.ModuleVisitName,
|
||||
["EarliestScanDate"] = taskInfo.SourceSubjectVisitId != null ? taskInfo.VisitEarliestScanDate : taskInfo.ModuleEarliestScanDate,
|
||||
["SignTime"] = taskInfo.SignTime,
|
||||
["Result"] = answer
|
||||
|
@ -622,8 +632,8 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
public async Task<IResponseOutput> AddOrUpdateTrialEmailNoticeConfig(TrialEmailNoticeConfigAddOrEdit addOrEditTrialEmailNoticeConfig)
|
||||
{
|
||||
await TestEmailConfigAsync(addOrEditTrialEmailNoticeConfig);
|
||||
|
||||
//var entity = await _trialEmailNoticeConfigRepository.InsertOrUpdateAsync(addOrEditTrialEmailNoticeConfig);
|
||||
|
||||
if (addOrEditTrialEmailNoticeConfig.Id == null)
|
||||
{
|
||||
|
@ -677,6 +687,7 @@ namespace IRaCIS.Core.Application.Service
|
|||
|
||||
await _trialEmailNoticeConfigRepository.UpdateFromDTOAsync(addOrEditTrialEmailNoticeConfig);
|
||||
|
||||
|
||||
await _trialEmailNoticeConfigRepository.SaveChangesAsync();
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
|
@ -686,6 +697,69 @@ namespace IRaCIS.Core.Application.Service
|
|||
}
|
||||
|
||||
|
||||
private async Task TestEmailConfigAsync(TrialEmailNoticeConfigAddOrEdit config)
|
||||
{
|
||||
var toUserList = await _repository.Where<TrialUser>(t => t.TrialId == config.TrialId && config.ToUserTypeList.Contains(t.User.UserTypeEnum)).Select(t => new { t.User.EMail, t.User.FullName }).ToListAsync();
|
||||
|
||||
|
||||
if (!config.FromEmail.Contains("@") || string.IsNullOrEmpty(config.FromEmail))
|
||||
{
|
||||
throw new BusinessValidationFailedException("项目发件邮箱配置有误,请核实");
|
||||
}
|
||||
|
||||
|
||||
if (toUserList.Count() == 0|| toUserList.Where(t=>t.EMail.Contains("@")).Count()==0)
|
||||
{
|
||||
throw new BusinessValidationFailedException("项目没有有效的收件人,无法发送邮件");
|
||||
}
|
||||
|
||||
var sendEmailConfig = new SMTPEmailConfig();
|
||||
|
||||
sendEmailConfig.FromEmailAddress = new MimeKit.MailboxAddress(config.FromName, config.FromEmail);
|
||||
sendEmailConfig.AuthorizationCode = config.AuthorizationCode;
|
||||
sendEmailConfig.UserName = config.FromEmail;
|
||||
|
||||
sendEmailConfig.Host = config.SMTPServerAddress;
|
||||
sendEmailConfig.Port = config.SMTPServerPort;
|
||||
|
||||
|
||||
sendEmailConfig.ToMailAddressList.Add(new MimeKit.MailboxAddress(config.FromName, config.FromEmail));
|
||||
|
||||
|
||||
var pathToFile = _hostEnvironment.WebRootPath
|
||||
+ Path.DirectorySeparatorChar.ToString()
|
||||
+ "EmailTemplate"
|
||||
+ Path.DirectorySeparatorChar.ToString()
|
||||
+ "EmailConfigTest.html";
|
||||
|
||||
|
||||
sendEmailConfig.TopicDescription = "项目邮件测试";
|
||||
|
||||
using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile))
|
||||
{
|
||||
var templateInfo = SourceReader.ReadToEnd();
|
||||
|
||||
|
||||
sendEmailConfig.HtmlBodyStr = string.Format(templateInfo,
|
||||
$" 收到此邮件,代表邮件配置正确"
|
||||
);
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
await SendEmailHelper.SendEmailAsync(sendEmailConfig);
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
throw new BusinessValidationFailedException("发件人配置错误,请核对服务器地址或者授权码是否填写有误"+ex.Message);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
[HttpDelete("{trialEmailNoticeConfigId:guid}")]
|
||||
public async Task<IResponseOutput> DeleteTrialEmailNoticeConfig(Guid trialEmailNoticeConfigId)
|
||||
{
|
||||
|
|
|
@ -1183,7 +1183,7 @@ namespace IRaCIS.Application.Services
|
|||
|
||||
await _visitTaskRepository.SaveChangesAsync();
|
||||
|
||||
//await _trialEmailNoticeConfigService.BaseBusinessScenarioSendEmailAsync(visitTaskId);
|
||||
await _trialEmailNoticeConfigService.BaseBusinessScenarioSendEmailAsync(visitTaskId);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -22,6 +22,11 @@ namespace IRaCIS.Core.Domain.Models
|
|||
[Required]
|
||||
public Guid TrialId { get; set; }
|
||||
|
||||
|
||||
public string SMTPServerAddress { get; set; } = string.Empty;
|
||||
|
||||
public int SMTPServerPort { get; set; }
|
||||
|
||||
[Required]
|
||||
public string AuthorizationCode { get; set; } = string.Empty;
|
||||
|
||||
|
|
Loading…
Reference in New Issue