From db7534edda60f497d6dd8265f4efd44d0b18d4f3 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 30 Jul 2021 20:17:36 +0200 Subject: [PATCH] Update SendEmail with support for sending Streams as attachment --- .../Activities/SendEmail/EmailAttachment.cs | 2 +- .../Activities/SendEmail/SendEmail.cs | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/activities/Elsa.Activities.Email/Activities/SendEmail/EmailAttachment.cs b/src/activities/Elsa.Activities.Email/Activities/SendEmail/EmailAttachment.cs index 591b826e5..7f7e2f960 100644 --- a/src/activities/Elsa.Activities.Email/Activities/SendEmail/EmailAttachment.cs +++ b/src/activities/Elsa.Activities.Email/Activities/SendEmail/EmailAttachment.cs @@ -1,5 +1,5 @@ // ReSharper disable once CheckNamespace namespace Elsa.Activities.Email { - public record EmailAttachment(byte[] Content, string? FileName, string? ContentType); + public record EmailAttachment(object Content, string? FileName, string? ContentType); } \ No newline at end of file diff --git a/src/activities/Elsa.Activities.Email/Activities/SendEmail/SendEmail.cs b/src/activities/Elsa.Activities.Email/Activities/SendEmail/SendEmail.cs index 2f80d34b7..635c259ed 100644 --- a/src/activities/Elsa.Activities.Email/Activities/SendEmail/SendEmail.cs +++ b/src/activities/Elsa.Activities.Email/Activities/SendEmail/SendEmail.cs @@ -136,7 +136,14 @@ namespace Elsa.Activities.Email { var fileName = emailAttachment.FileName ?? $"Attachment-{++index}"; var contentType = emailAttachment.ContentType ?? "application/binary"; - bodyBuilder.Attachments.Add(fileName, emailAttachment.Content, ContentType.Parse(contentType)); + var parsedContentType = ContentType.Parse(contentType); + + if(emailAttachment.Content is byte[] bytes) + bodyBuilder.Attachments.Add(fileName, bytes, parsedContentType); + + else if(emailAttachment.Content is Stream stream) + await bodyBuilder.Attachments.AddAsync(fileName, stream, parsedContentType, cancellationToken); + break; } default: