diff --git a/IRaCIS.Core.Application/Helper/Email/SendEmailHelper.cs b/IRaCIS.Core.Application/Helper/Email/SendEmailHelper.cs index 550b49ec9..b954cb4f3 100644 --- a/IRaCIS.Core.Application/Helper/Email/SendEmailHelper.cs +++ b/IRaCIS.Core.Application/Helper/Email/SendEmailHelper.cs @@ -55,6 +55,20 @@ public static class SendEmailHelper } + /// + /// 设置发送邮箱 + /// + /// + /// + public static void ChangeEmailSenderName(MimeMessage messageToSend, string senderName) + { + var fromAddress = messageToSend.From.Mailboxes.FirstOrDefault(); + if (fromAddress != null) + { + messageToSend.From.Clear(); + messageToSend.From.Add(new MailboxAddress(senderName, fromAddress.Address)); + } + } public static async Task TestEmailConfigAsync(SystemEmailSendConfig _systemEmailConfig) { using (var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5))) diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/ImageConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/ImageConsumer.cs index c3f98ed1a..49b5858ed 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/ImageConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/ImageConsumer.cs @@ -365,8 +365,11 @@ public class ImageConsumer( return (topicStr, htmlBodyStr); }; + + await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(inDto.EmailNoticeConfig, messageToSend, emailConfigFunc); + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } } @@ -500,6 +503,7 @@ public class ImageConsumer( await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailNoticeConfig, messageToSend, emailConfigFunc); + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } } diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/ReadingRelationEmailConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/ReadingRelationEmailConsumer.cs index 54eac7243..6cb2eb004 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/ReadingRelationEmailConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/ReadingRelationEmailConsumer.cs @@ -127,7 +127,7 @@ public class UrgentMedicalReviewAddedEventConsumer( }; await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } @@ -235,7 +235,7 @@ public class UrgentIRRepliedMedicalReviewConsumer( return (topicStr, htmlBodyStr); }; await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } @@ -353,7 +353,7 @@ public class UrgentMIMRepliedMedicalReviewConsumer( }; await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } } @@ -462,7 +462,7 @@ public class UrgentIRApplyedReReadingConsumer( }; await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } } diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs index e7072a3da..901dea4e5 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs @@ -121,7 +121,7 @@ public class UserSiteSurveySubmitedEventConsumer( await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } @@ -204,7 +204,7 @@ public class SiteSurveySPMSubmitedEventConsumer( }; await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } @@ -318,7 +318,7 @@ public class SiteSurverRejectedEventConsumer( }; await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/SubjectVisitQCAndCheckConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/SubjectVisitQCAndCheckConsumer.cs index 8eacc9bdd..923dbfe44 100644 --- a/IRaCIS.Core.Application/MassTransit/Consumer/SubjectVisitQCAndCheckConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Consumer/SubjectVisitQCAndCheckConsumer.cs @@ -121,7 +121,7 @@ public class CRCSubmitedAndQCToAuditEventConsumer( }; await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } @@ -220,7 +220,7 @@ public class CRCRepliedQCChallengeEventConsumer( return (topicStr, htmlBodyStr); }; await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } } @@ -338,7 +338,7 @@ public class QCRepliedQCChallengeEventConsumer( await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } } @@ -438,7 +438,7 @@ public class CRCRepliedCheckChallengeEventConsumer( await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } } @@ -548,7 +548,7 @@ public class PMRepliedCheckChallengeEventConsumer( await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } } @@ -647,7 +647,7 @@ public class CheckStateChangedToAuditEventConsumer( await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } } @@ -756,7 +756,7 @@ public class QCClaimTaskEventConsumer( await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } } diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/IRRecurringConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/IRRecurringConsumer.cs index 6844e4f42..087524fcd 100644 --- a/IRaCIS.Core.Application/MassTransit/Recurring/IRRecurringConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Recurring/IRRecurringConsumer.cs @@ -5,6 +5,7 @@ using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Application.MassTransit.Consumer; using IRaCIS.Core.Application.Service.Reading.Dto; +using IRaCIS.Core.Domain.Models; using MassTransit; using Microsoft.Extensions.Options; using MimeKit; @@ -26,6 +27,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring public class UrgentIRUnReadTaskRecurringEventConsumer( IRepository _trialReadingCriterionRepository, IRepository _visitTaskRepository, + IRepository _trialRepository, IRepository _dictionaryRepository, IRepository _trialUserRoleRepository, IRepository _trialEmailNoticeConfigrepository, @@ -38,6 +40,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring var isEn_US = CultureInfo.CurrentCulture.Name == StaticData.CultureInfo.en_US; var trialId = context.Message.TrialId; + var trialInfo = await _trialRepository.FirstOrDefaultAsync(t => t.Id == trialId); var scenario = EmailBusinessScenario.ExpeditedReading; var trialEmailConfig = _trialEmailNoticeConfigrepository.Where(t => t.TrialId == trialId && t.BusinessScenarioEnum == scenario && t.IsAutoSend && t.IsEnable).FirstOrDefault(); @@ -160,7 +163,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring }; await CommonEmailHelper.GetTrialEmailSubejctAndHtmlInfoAndBuildAsync(trialEmailConfig, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); //处理标记已通知的任务 diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs index f3baef4b2..9c89fbdfb 100644 --- a/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Recurring/SystemDocumentConsumer.cs @@ -114,7 +114,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring if (emailConfig != null) { await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc); - + await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } diff --git a/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs b/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs index 1002094bd..92680fd87 100644 --- a/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs +++ b/IRaCIS.Core.Application/MassTransit/Recurring/TrialDocumentConsumer.cs @@ -137,7 +137,7 @@ namespace IRaCIS.Core.Application.MassTransit.Recurring if (emailConfig != null) { await CommonEmailHelper.GetEmailSubejctAndHtmlInfoAndBuildAsync(emailConfig, messageToSend, emailConfigFunc); - + await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } diff --git a/IRaCIS.Core.Application/Service/Common/MailService.cs b/IRaCIS.Core.Application/Service/Common/MailService.cs index 9c00c1be9..89336371b 100644 --- a/IRaCIS.Core.Application/Service/Common/MailService.cs +++ b/IRaCIS.Core.Application/Service/Common/MailService.cs @@ -533,7 +533,7 @@ namespace IRaCIS.Core.Application.Service await GetEmailSubejctAndHtmlInfoAndBuildAsync(sysUserInfo.IsFirstAdd ? EmailBusinessScenario.SiteUseOrExternalUserFirstrJoinTrial : EmailBusinessScenario.SiteUserOrExternalUserExistJoinTrial, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig, null); } @@ -593,7 +593,7 @@ namespace IRaCIS.Core.Application.Service await GetEmailSubejctAndHtmlInfoAndBuildAsync(sysUserInfo.IsFirstAdd ? EmailBusinessScenario.SiteUseOrExternalUserFirstrJoinTrial : EmailBusinessScenario.SiteUserOrExternalUserExistJoinTrial, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } @@ -723,7 +723,7 @@ namespace IRaCIS.Core.Application.Service await GetEmailSubejctAndHtmlInfoAndBuildAsync(sysUserInfo.IsFirstAdd ? EmailBusinessScenario.DoctorUserFirstJoinTrial : EmailBusinessScenario.DoctorUserExistJoinTrial, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig, null); //创建账号 和创建角色 一条,更新的时候才记录更新角色 @@ -954,7 +954,7 @@ namespace IRaCIS.Core.Application.Service await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.SiteSurvey_CheckUser, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); } @@ -990,7 +990,7 @@ namespace IRaCIS.Core.Application.Service await GetEmailSubejctAndHtmlInfoAndBuildAsync(EmailBusinessScenario.SiteSurvey_UpdateUser, messageToSend, emailConfigFunc); - + SendEmailHelper.ChangeEmailSenderName(messageToSend, trialInfo.EmailFromName); await SendEmailHelper.SendEmailAsync(messageToSend, _systemEmailConfig); }