diff --git a/aspnet-core/modules/platform/LINGYUN.Platform.Domain/LINGYUN/Platform/Messages/EmailMessageManager.cs b/aspnet-core/modules/platform/LINGYUN.Platform.Domain/LINGYUN/Platform/Messages/EmailMessageManager.cs index 4d8ed4017..4fe2898f8 100644 --- a/aspnet-core/modules/platform/LINGYUN.Platform.Domain/LINGYUN/Platform/Messages/EmailMessageManager.cs +++ b/aspnet-core/modules/platform/LINGYUN.Platform.Domain/LINGYUN/Platform/Messages/EmailMessageManager.cs @@ -65,27 +65,30 @@ public class EmailMessageManager : DomainService, IEmailMessageManager else { var match = Regex.Match(message.From, FromAddressPattern); - if (match.Success) - { - from = new MailAddress(match.Value); - } - else - { - from = new MailAddress(message.From); - } + from = match.Success ? new MailAddress(match.Value) : new MailAddress(message.From); } - var to = new MailAddress(message.Receiver); - var mailMessage = new MailMessage(from, to) + var mailMessage = new MailMessage { + From = from, Subject = message.Subject, Body = message.Content, IsBodyHtml = message.IsBodyHtml, }; + var toAddresses = message.Receiver.Split(new[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries); + foreach (var address in toAddresses) + { + mailMessage.To.Add(address.Trim()); + } + if (!message.CC.IsNullOrWhiteSpace()) { - mailMessage.CC.Add(message.CC); + var ccAddresses = message.CC.Split(new[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries); + foreach (var address in ccAddresses) + { + mailMessage.CC.Add(address.Trim()); + } } if (message.Priority.HasValue) @@ -103,7 +106,8 @@ public class EmailMessageManager : DomainService, IEmailMessageManager foreach (var header in message.Headers) { - mailMessage.Headers.Add(header.Key, header.Value); + var sanitizedValue = header.Value?.Replace(",", "") ?? ""; + mailMessage.Headers.Add(header.Key, sanitizedValue); } foreach (var attachment in message.Attachments)