From 5fcbee4662f1ff669e5afb5649d9a5e043981388 Mon Sep 17 00:00:00 2001 From: NikitaVashchuk Date: Tue, 2 May 2023 14:02:16 +0500 Subject: [PATCH] added attachments for AWSSender --- .../Notify/Senders/AWSSender.cs | 39 +++++-------------- .../Notify/Senders/SmtpSender.cs | 2 +- 2 files changed, 11 insertions(+), 30 deletions(-) diff --git a/common/ASC.Core.Common/Notify/Senders/AWSSender.cs b/common/ASC.Core.Common/Notify/Senders/AWSSender.cs index 7a3ac2677f..be8bcb42a9 100644 --- a/common/ASC.Core.Common/Notify/Senders/AWSSender.cs +++ b/common/ASC.Core.Common/Notify/Senders/AWSSender.cs @@ -129,37 +129,18 @@ public class AWSSender : SmtpSender, IDisposable } _semaphore.Release(); } - - var dest = new Destination - { - ToAddresses = m.Reciever.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries).Select(a => MailAddressUtils.Create(a).Address).ToList(), - }; - - var subject = new Content(MimeHeaderUtils.EncodeMime(m.Subject)) { Charset = Encoding.UTF8.WebName, }; - - Body body; - if (m.ContentType == Pattern.HtmlContentType) - { - body = new Body(new Content(HtmlUtil.GetText(m.Content)) { Charset = Encoding.UTF8.WebName }) - { - Html = new Content(GetHtmlView(m.Content)) { Charset = Encoding.UTF8.WebName } - }; - } - else - { - body = new Body(new Content(m.Content) { Charset = Encoding.UTF8.WebName }); - } - - var from = MailAddressUtils.Create(m.Sender).ToEncodedString(); - var request = new SendEmailRequest { Source = from, Destination = dest, Message = new Message(subject, body) }; - if (!string.IsNullOrEmpty(m.ReplyTo)) - { - request.ReplyToAddresses.Add(MailAddressUtils.Create(m.ReplyTo).Address); - } + + var message = BuildMailMessage(m); + + using var ms = new MemoryStream(); + message.WriteTo(ms); + + var request = new SendRawEmailRequest(new RawMessage(ms)); ThrottleIfNeeded(); - - var response = await _amazonEmailServiceClient.SendEmailAsync(request); + + var response = await _amazonEmailServiceClient.SendRawEmailAsync(request); + _lastSend = DateTime.UtcNow; return response != null ? NoticeSendResult.OK : NoticeSendResult.TryOnceAgain; diff --git a/common/ASC.Core.Common/Notify/Senders/SmtpSender.cs b/common/ASC.Core.Common/Notify/Senders/SmtpSender.cs index efd523ede3..6815f35923 100644 --- a/common/ASC.Core.Common/Notify/Senders/SmtpSender.cs +++ b/common/ASC.Core.Common/Notify/Senders/SmtpSender.cs @@ -195,7 +195,7 @@ public class SmtpSender : INotifySender : null; } } - private MimeMessage BuildMailMessage(NotifyMessage m) + protected MimeMessage BuildMailMessage(NotifyMessage m) { var mimeMessage = new MimeMessage {